亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? early_late_track.asv

?? Symbol Timing Tracking Using Early-Late Techniques by matlab
?? ASV
字號:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Part a  from report6_DSP.pdf
% To build upon Part I, we are to implement a LMS equalizer using Matlab. This first part is initial
% timing acquisition. To do this, we need to create a data sequence. We use an m-sequence for
% this with state vector of 8, a connection polynomial of 37 and a length of 127. This gives us a
% PN code of length 127. The length of 127 was purely arbitrary. The function mseq was used
% from a previous lab.
clear all
close all
data_seq = mseq(8,37,127);
%For our signal, we are required to have 8 samples per symbol. To do this, we
%basically over-sampled the signal data_seq.
samples=8;
current_chip=1;
xmt_index=1;
for i=1:length(data_seq)
    current_bit=data_seq(i);
    for j=1:samples
        xmt_bpsk(xmt_index) = current_chip*current_bit;
        xmt_index = xmt_index+1;
    end
end

% We then pass the signal xmt_bpsk through a channel filter of specifications [1 0 0 0 0.7 0 0 -0.3].
% We also have to define a matched filter of length 8 because we have 8 samples per symbol.

h_channel=[1 0 0 0 0.7 0 0 -0.3];
chan_out=filter(h_channel,1,xmt_bpsk);
h_mf=[1 1 1 1 1 1 1 1];
% Next we insert a timing delay by shifting the data sequence to where it loses an arbitrary number
% of samples in the beginning.
delay=0;
data_seq=data_seq(1,delay+1:length(data_seq));
xmt_bpsk=xmt_bpsk(1,delay+1:length(xmt_bpsk));

buffer=[];
acq_stat=[];
T=8;
acq_add=0;
cnt=0;
sym=10;
for j=1:sym
    index=1;
    a=1+cnt;
    b=(T)+cnt;
    for k=a:b
        buffer=chan_out(1,k:(T-1)+k);
        temp=sum(buffer.*h_mf);
        acq_stat(index) = abs(temp);
        index=index+1;
        cnt=cnt+1;
    end
%     figure(j)
%     plot(acq_stat);
    acq_add=acq_add + acq_stat;
    %[acq_max,acq_index]=max(acq_add/j)
end
[acq_max,acq_index]=max(acq_add/sym)

%%%%%%%%%%%%%part a acquisition over


%%%%%%%%%%%%%%part b tracking begin
% For part b, we are required to do symbol tracking. We use the same code as for part a to do the
% acquisition and to set up our data sequence. The only difference is we have a data sequence of
% length 2005 for this part. Once we acquire the signal and find the index of where the peaks were
% found, we must shift our data sequence by the index so that we can have maximum correlation at
% the start of each 8 samples. To accomplish the tracking, we use the Least Mean Squared method
% with blind equalization. This means that our equalizer has no prior information about our
% incoming data. We set up a filter to be used for the equalizer. This filter consists of 8 ones and 7
% zeros. We divide the filter by 8 so we normalize the 8 ones.

taps=15;
h_eq=[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]./8;
zi=zeros(1,14);
mu=0.005;
%fill tap delay line
sym_index = 1;
for i = 1:15
    new_samp = chan_out_shift(i);  %
    buffer = [new_samp zi];
    [y(sym_index),zi] = my_filter(h_eq,new_samp,zi);
end
%--------------------%
% Blind Equalization %
%--------------------%
samp_cnt = 0;
for i=16:length(chan_out_shift)  %
    samp_cnt=samp_cnt+1;
    new_samp=chan_out_shift(i);   %chan_out_shift
    buffer=[new_samp zi];
    [y(sym_index),zi]=my_filter(h_eq,new_samp,zi);
    if samp_cnt == T
        d=sign(y(sym_index));
        error(sym_index)=d-y(sym_index);
        grad=error(sym_index).*buffer;
        h_eq = h_eq + mu.*grad(length(grad):-1:1);
        sym_index = sym_index + 1;
        samp_cnt = 0;
    end
end
plot(error)
grid;
title('Error Signal');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%part c
% sym_index=0;
% n_sym=200*samples;
% i=1;
% while sym_index < length(chan_out)
%     sym_index=sym_index+1+(1/n_sym);
%     chan_out_loss(i)=chan_out(round(sym_index));
%     i=i+1;
% end


%In doing tracking, we have to keep up with an on-time, an early, and a late statistic. So each
%statistic from part b now has 3 statistics. If the sample is early, we must take the sample above it
%and if it’s late, we take the one before it. This will constantly make sure our peak is actually a
%peak.

samp_cnt = 0;
zi_on=zi;
zi_early=zi;
zi_late=zi;
i=15;
while sym_index <= 2000
        i=i+1;
        samp_cnt=samp_cnt+1;
        new_samp_on=chan_out_shift(i);
        new_samp_late=chan_out_shift(i-1);
        new_samp_early=chan_out_shift(i+1);
        [y_on(sym_index),zi_on]=my_filter(h_eq,new_samp_on,zi_on);
        [y_early(sym_index),zi_early]=my_filter(h_eq,new_samp_early,zi_early);
        [y_late(sym_index),zi_late]=my_filter(h_eq,new_samp_late,zi_late);
        if samp_cnt == T
                d_on=sign(y_on(sym_index));
                d_early=sign(y_early(sym_index));
                d_late=sign(y_late(sym_index));
                error_on(sym_index)=d_on-y_on(sym_index);
                error_early(sym_index)=d_early-y_early(sym_index);
                error_late(sym_index)=d_late-y_late(sym_index);
                [error_stat(sym_index),error_index]=min([abs(error_on(sym_index)),
                abs(error_early(sym_index)), abs(error_late(sym_index))]);
                if error_index==1
                    new_samp=new_samp_on;
                    output_bit(sym_index) = d_on;
                    error_stat(sym_index) = error_on(sym_index);
                    T=8;
                    zi=zi_on;
                elseif error_index==2
                    new_samp=new_samp_early;
                    output_bit(sym_index) = d_early;
                    error_stat(sym_index) = error_early(sym_index);
                    T=9;
                    zi=zi_early;
                elseif error_index==3
                    new_samp=new_samp_late;
                    output_bit(sym_index) = d_late;
                    error_stat(sym_index) = error_late(sym_index);
                    T=7;
                    zi=zi_late;
                end
                grad=error_stat(sym_index).*buffer;
                h_eq = h_eq + mu.*grad(length(grad):-1:1);
                buffer=[new_samp zi];
                sym_index = sym_index + 1;
                samp_cnt = 0;
                continue;
        end
        buffer=[new_samp_on zi_on];
end



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%part d
if (F == 31 & sym_index > 100)
    F_sym_index=sym_index;
    if blind == 1 %finished blind, enter training
          blind=0;
    else %finished training, enter blind
          blind=1;
    end
end



%%%%%%%%%%%%%%%%%%%%%%part e
% Part e consists of creating a BPSK signal and adding noise and passing it through a channel.
% Then we will demodulate using the Costas Loop from last lab and use our equalizer to acquire
% and track the signal to give us our output bits. To do this, we created a modulation function and
% a demodulation function. The modulation function takes in an array and multiplies it with a
% carrier. In addition, we also added noise at this stage as well. This function was called via the
% main equalizer code as:
xmt_bpsk=mod(bpsk);


% The demodulation function is called in a similar fashion and performs carrier recovery using a
% Costas Loop. The function takes in the modulated signal with channel corruption and removes
% the carrier. The resulting signal is fed into the acquisition and tracking algorithms to make
% decisions on the bits as in part d.


% chan_output=demod(chan_out_loss);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲中国最大av网站| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧美一区二区三区国产精品 | 亚洲精品成人少妇| 国产精品福利一区| 国产精品亲子乱子伦xxxx裸| 国产日韩欧美一区二区三区综合| 亚洲精品一线二线三线| 久久久综合激的五月天| 国产日产欧美一区| 国产精品丝袜一区| 亚洲色图在线播放| 一区二区三区自拍| 亚洲va韩国va欧美va精品| 午夜精品久久久| 麻豆成人免费电影| 国产一区欧美二区| 成人黄色777网| 一本到三区不卡视频| 在线观看不卡一区| 3d动漫精品啪啪| 精品国产露脸精彩对白| 久久精品亚洲一区二区三区浴池| 久久精品欧美一区二区三区不卡| 国产日产亚洲精品系列| 亚洲视频精选在线| 亚洲国产乱码最新视频 | 91久久奴性调教| 欧美日韩国产综合草草| 精品噜噜噜噜久久久久久久久试看| 精品国产伦一区二区三区观看体验| 久久久久国产免费免费| 国产精品久久久久久久久图文区| 一区二区在线观看免费视频播放| 亚洲一卡二卡三卡四卡| 久久精品国产99久久6| 丰满岳乱妇一区二区三区| 91蜜桃在线免费视频| 6080亚洲精品一区二区| 国产日韩精品视频一区| 亚洲精品国产高清久久伦理二区| 亚洲午夜av在线| 精品亚洲成a人| 99免费精品在线观看| 欧美日本韩国一区二区三区视频 | 精品一区在线看| av在线一区二区三区| 91精品久久久久久久91蜜桃| 国产亚洲欧洲一区高清在线观看| 亚洲精品第1页| 国产在线精品免费av| 欧美在线观看视频一区二区三区| 精品入口麻豆88视频| 亚洲欧美色图小说| 极品尤物av久久免费看| 在线观看欧美黄色| 国产欧美日韩久久| 亚洲韩国精品一区| 成人一级黄色片| 91精品国产高清一区二区三区蜜臀| 国产免费成人在线视频| 日韩avvvv在线播放| 91热门视频在线观看| 欧美精品一区二区高清在线观看| 樱桃视频在线观看一区| 成人午夜激情片| 日韩一区二区精品| 亚洲综合免费观看高清完整版| 激情国产一区二区| 91.xcao| 亚洲欧美一区二区三区极速播放| 激情综合色播激情啊| 欧美美女黄视频| 亚洲情趣在线观看| 成人高清在线视频| 久久亚洲二区三区| 日韩在线a电影| 欧美专区亚洲专区| 国产精品伦理在线| 国产精品69毛片高清亚洲| 在线播放国产精品二区一二区四区| 综合久久综合久久| 国产成人精品影视| 337p日本欧洲亚洲大胆精品| 午夜精品成人在线视频| 在线观看亚洲一区| 中文字幕一区二区三区视频| 国产美女av一区二区三区| 日韩精品一区二区三区在线播放 | 国产成人啪免费观看软件| 日韩手机在线导航| 日韩激情视频在线观看| 欧美视频一二三区| 怡红院av一区二区三区| 91免费在线看| 自拍av一区二区三区| 成人高清伦理免费影院在线观看| 久久色成人在线| 国产精品自在在线| 久久综合九色综合欧美就去吻 | 激情av综合网| 精品日韩在线观看| 国产一区二区三区高清播放| 欧美一级高清大全免费观看| 五月婷婷综合在线| 91精品国产91综合久久蜜臀| 日精品一区二区| 欧美一区二区三级| 麻豆国产精品视频| 久久这里只有精品6| 国产精品18久久久| 日本一区二区三区免费乱视频| 国产69精品久久777的优势| 国产嫩草影院久久久久| 99久久精品情趣| 亚洲精品写真福利| 欧美吻胸吃奶大尺度电影| 亚洲国产成人tv| 91精品国产全国免费观看| 麻豆视频观看网址久久| 久久久美女毛片| 成人免费av网站| 亚洲天堂精品视频| 欧美色男人天堂| 日本不卡不码高清免费观看| 精品免费日韩av| 成人av在线资源| 亚洲午夜一区二区| 制服丝袜中文字幕一区| 九九视频精品免费| 日本一区二区不卡视频| 色av成人天堂桃色av| 丝袜亚洲精品中文字幕一区| 欧美不卡在线视频| 成人av中文字幕| 亚洲成av人片在线| 久久综合网色—综合色88| eeuss鲁片一区二区三区在线看| 樱桃国产成人精品视频| 欧美一卡二卡三卡| 国产精品一区二区三区网站| 亚洲欧洲精品一区二区三区不卡 | 久久女同精品一区二区| 91在线免费播放| 蜜臀精品一区二区三区在线观看| 国产色产综合色产在线视频| 在线亚洲精品福利网址导航| 蜜桃av一区二区| 亚洲欧美日韩国产另类专区| 欧美一区二区三区视频在线| 国产成人精品免费一区二区| 亚洲一区在线电影| 久久先锋资源网| 欧美无人高清视频在线观看| 国产一区二区三区免费看| 亚洲一区二区三区三| 久久人人爽爽爽人久久久| 欧美三区在线观看| 国产iv一区二区三区| 视频一区在线视频| 国产精品久久久一区麻豆最新章节| 欧美日韩国产一区二区三区地区| 国产二区国产一区在线观看| 五月天欧美精品| 1区2区3区欧美| 精品国产乱码久久久久久久| 在线中文字幕一区| 国产成人在线色| 日本在线观看不卡视频| 亚洲美女免费视频| 久久久久青草大香线综合精品| 欧美午夜精品理论片a级按摩| 国产成人在线观看| 美女久久久精品| 亚洲一二三四区不卡| 国产精品国产三级国产专播品爱网| 欧美一区二区不卡视频| 欧美午夜视频网站| 色综合网站在线| 懂色av一区二区三区免费观看| 麻豆精品一区二区综合av| 亚洲国产欧美在线| 亚洲精品你懂的| 中文字幕视频一区| 日本一区二区三区四区| 精品国产髙清在线看国产毛片 | 亚洲二区视频在线| 1024成人网| 日本一区二区成人在线| 久久久久久一级片| 精品国产乱码久久久久久夜甘婷婷| 欧美乱妇23p| 欧美亚洲禁片免费| 色综合久久久网| 91在线国产福利| aaa国产一区| av电影天堂一区二区在线| 处破女av一区二区| 成人午夜碰碰视频| 风间由美性色一区二区三区|