rayleighchan实现瑞利多径衰落信
rayleighchan實(shí)現(xiàn)瑞利多徑衰落信道
1.命令格式:?
chan = rayleighchan(ts,fd,tau,pdb)?
其中:?
ts—為輸入信號(hào)的采樣周期,?
fd—就是Doppler頻偏,以Hz為單位,與速率的換算關(guān)系為v×fc/c,fc是載頻?
tau—輸入的信道參數(shù),一個(gè)向量,包含了各徑的延時(shí),以s為單位?
pdb—輸入的信道參數(shù),一個(gè)向量,包含了各徑的功率(當(dāng)然是均值啦,實(shí)際產(chǎn)生的能量都是以此為均值的隨機(jī)量),以dB為單位。?
然后y = filter(chan,x),即可將信道的影響加在輸入的數(shù)據(jù)x上。
2.原理:?
rayleighchan函數(shù)生成信道的過程實(shí)際是設(shè)計(jì)一個(gè)多抽頭的濾波器,而濾波器的系數(shù)計(jì)算是多個(gè)sinc函數(shù)加權(quán)、延時(shí)后的求和:?
g(n)=\sum_k{ sinc( tau(k)/Ts-n) h(k) },-N1<=n<=N2?
其中N1和N2的選取要使得在-N1<=n<=N2之外的g(n)很小可忽略。
rayleighchan函數(shù)的實(shí)現(xiàn)步驟是這樣的:?
1) h(k)看作是一串沖激函數(shù),與sinc函數(shù)卷積,sinc函數(shù)的邊瓣周期由輸入?yún)?shù)采樣時(shí)間Ts決定,如果看連續(xù)時(shí)間波形的話,整個(gè)信道響應(yīng)就是多個(gè)不同時(shí)延、不同幅度的sinc函數(shù)的疊加;?
2) 對(duì)這個(gè)連續(xù)的信道響應(yīng)進(jìn)行采樣得到信道濾波器的抽頭系數(shù),采樣間隔為Ts,而采樣點(diǎn)的個(gè)數(shù)是要保證舍棄位置的信道響應(yīng)足夠小可以忽略,如果采樣率過小則Ts較大sinc函數(shù)衰減慢,需要保存較多個(gè)抽頭系數(shù),此時(shí)很可能在第一徑位置之前出現(xiàn)若干個(gè)信道采樣點(diǎn),即h(n)~=0, n<0;?
3)輸入信號(hào)(以Ts為間隔的采樣點(diǎn))與濾波器進(jìn)行卷積輸出(filter函數(shù)的作用)。
3.補(bǔ)充:
sinc函數(shù)定義:sinc(x)=sin(x)/x4.舉例:
程序:
clear all close all clc %-----------------------------升余弦濾波器 Fs=9600; %采樣頻率 Ts=1/Fs; %采樣間隔 Fd=960; %Doppler頻偏,以Hz為單位 tau=[0,0.002]; %多徑延時(shí),以s為單位 pdf=[0,0]; %各徑功率,以dB位單位 h=rayleighchan(Ts,Fd,tau,pdf); %-------------------------------通過信道 data1=[1,zeros(1,100)];%數(shù)據(jù)1 fc=96; t=0:1/Fs:999*(1/Fs); data2=cos(2*pi*fc*t); %數(shù)據(jù)2 data2_fft=fft(data2,100); data2_abs=abs(data2_fft); y1=filter(h,data1); y11=abs(y1); y2=filter(h,data2); y22=fft(y2,100); y222=abs(y22); subplot(2,2,1); x1=1:length(data1); h1=stem(x1,data1); set(h1,'MarkerFaceColor','red') subplot(2,2,3); x3=1:length(y11); h3=stem(x3,y11); set(h3,'MarkerFaceColor','red') subplot(2,2,2); x2=1:length(data2_abs); h2=stem(x2,data2_abs); set(h2,'MarkerFaceColor','blue') subplot(2,2,4); x4=1:length(y222); h4=stem(x4,y222); set(h4,'MarkerFaceColor','blue')?
分析:?
1.tau延時(shí)向量,時(shí)域上的參數(shù),時(shí)域采樣后延遲的點(diǎn)數(shù)為fix(tau/Ts).?
2.Fd:多普勒頻偏,頻域上的參數(shù),可以看到信號(hào)頻域發(fā)生偏移,但是并不是簡單的頻率搬移,而是信號(hào)頻率發(fā)生擴(kuò)展,原來是單頻信號(hào),變?yōu)轭l率段信號(hào)。
經(jīng)過數(shù)值的設(shè)定可以看到,在command history框下輸入chan得到:
chan的writeable properties
1) 如何設(shè)定chan所需的各徑的多普勒譜??
多普勒譜的種類一共有7種:?
doppler.ajakes;doppler.bigaussian;doppler.jakes;doppler.rjakes;doppler.flat;doppler.gaussian和doppler.rounded。?
??????在rayleighchan函數(shù)中默認(rèn)的是Jakes譜,即doppler.jakes。修改多普勒譜的方法是直接對(duì)chan.DopplerSpectrum進(jìn)行設(shè)置。
??????這里默認(rèn)了各徑都是按照gaussian譜來生成的,如果需要各徑的Doppler譜不同則可以通過設(shè)置 ,即可得到對(duì)應(yīng)于PathDelays的各徑DopplerSpectrum。
2) InputSamplePeriod?
直接設(shè)置即可,無線信道傳輸?shù)?strong>基帶信號(hào)的符號(hào)周期。
3) PathDelays?
每條徑的延時(shí),單位是seconds。
4) MaxDopplerShift?
最大多普勒頻移:對(duì)于rayleighchan函數(shù)的使用方法研究
5) AvgPathGaindB?
每條路徑增益的平均功率,單位是分貝。
6) StoreHistory?
將chan.StoreHistory設(shè)置為1時(shí),可以把信道的信息記錄下來,并可以通過Plot(chan)畫出當(dāng)前的信道的時(shí)域IR,頻域相應(yīng)等各種圖。
7) NormalizePathGains?
將chan.NormalizePathGains設(shè)置為1時(shí),每條路徑增益絕對(duì)值的平方和(即功率和)的平均值為1。這個(gè)可以通過多次使用rayleighchan生成信道,求取信道各路徑增益絕對(duì)值的平方和即可看到其平均值為1。
8) StorePathGains?
將chan.StorePathGains設(shè)置為1時(shí),各路徑的增益將會(huì)被記錄下來,但是不能使用Plot(chan)畫圖。
- 在這里額外說一點(diǎn),信道的StorePathGains設(shè)為1時(shí),查看chan.PathGains可以發(fā)現(xiàn)這個(gè)值是一個(gè)N×M的矩陣,在這里N是信道處理的數(shù)據(jù)長(也就是輸入信號(hào)的長度),M是多徑數(shù)。這里的chan.PathGains每列是線性變化的,原因是在處理每個(gè)數(shù)據(jù)時(shí)信道由于受到多普勒譜的影響是時(shí)變的,但信道的狀態(tài)是連續(xù)的。
9) ResetBeforeFiltering?
將chan.ResetBeforeFiltering在使用filter函數(shù)前設(shè)置為0時(shí),可以看到信道各路徑的斜率會(huì)是一個(gè)值,也就是無論處理多少數(shù)據(jù)信道的實(shí)際狀態(tài)都是連續(xù)的,無論其他的條件(比如噪聲和輸入信號(hào))發(fā)生怎樣的變化,信道的狀態(tài)是連續(xù)的,但不是說信道的增益值是恒定的數(shù)值,只是信道增益的實(shí)際值線性增長的,信道的狀態(tài)時(shí)連續(xù)的。(每次使用filter函數(shù)一次,信道增益的實(shí)際數(shù)值都是會(huì)發(fā)生變化的。)只要信道的狀態(tài)不變就相當(dāng)于信道沒有發(fā)生質(zhì)的變化,在仿真時(shí)我們可以認(rèn)為使用的是同一個(gè)信道。
如果設(shè)置為1,則是說明每次生成的信道增益的狀態(tài)是不連續(xù)的,也就是信道發(fā)生了變化,我認(rèn)為這在仿真時(shí)可以控制信道變化的快慢。
chan2的read-only properties
1) ChannelType?
這個(gè)就沒什么好說了,只是說明使用函數(shù)生成的信道是瑞利的還是萊斯的。
2) PathGains?
信道各路徑的真實(shí)增益,這個(gè)增益不是通過AvgPathGaindB換算過來的,AvgPathGaindB是平均增益,所以生成的各路徑增益的功率值是圍繞這個(gè)值生成的。
3) ChannelFilterDelay?
這個(gè)值沒有什么好說的,原因是這個(gè)值沒有什么用,它一般是和信道的PathDelays的第一個(gè)值是對(duì)應(yīng)的。
4) NumSamplesProcessed?
這個(gè)值是說信道處理了多少個(gè)數(shù)據(jù),如果輸入信號(hào)矢量的長度是N,則這個(gè)值就是N。
文章轉(zhuǎn)自于:?
http://blog.sina.com.cn/s/blog_ab9e9fc30101ejf5.html?
http://blog.sina.com.cn/s/blog_8d3179bd01015jm8.html
http://blog.csdn.net/shenjun1992722/article/details/50193381
轉(zhuǎn)載于:https://www.cnblogs.com/xh0102/p/6382598.html
總結(jié)
以上是生活随笔為你收集整理的rayleighchan实现瑞利多径衰落信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Confluence相关背景知识
- 下一篇: 数据探索