转自:http://blog.sina.com.cn/s/blog_758ebadc0100qci0.html
1.Rcosfir:design a raised cosine FIR filter.(rcosfir是低通滤波用的,以便后面加载频。)
B = RCOSFIR(R, N_T, RATE, T) designs and returns a raised cosine FIR filter.
A raised cosine filter is typically used to shape and oversample a symbol stream before modulation/transmission as well as after reception and demodulation. It is used to reduce the bandwidth of the over sampled symbol stream without introducing ISI.
R(滚降因子), The rolloff factor, determines the width of the transition band. R has no units. The transition band is (1-R)/ (2*T) < |f| < (1+R)/(2*T).
T(符号持续时间,一般是采样频率的倒数) is the input signal sampling period, in seconds. RATE(过采样率) is the number of points in each input symbol period of length T. RATE must be greater than 1. The input sample rate is T samples per second, while the output sample rate is T*rate samples per second.
N_T (用来控制滤波器长度的参数,此值越大抽头越多,也就越精确,滤波器的阶数等于2*N_T+1,而阶数与功能的实现程度及复杂度有关。阶数越高,根升余弦的波形更接近于真实的模拟波形,但这样运算量也比较大。阶数的具体大小,可根据几次取不同数值时的仿真结果来选择。) is a scalar or a vector of length 2. If N_T is specified as a scalar, then the filter length is 2 * N_T + 1 input samples. If N_T is a vector, it specifies the extent of the filter. In this case, the filter length is N_T(2)-N_T(1) +1 input samples (or (N_T(2)-N_T(1))* RATE+1 output samples).
The default value for N_T is 3. The default value of RATE is 5. The default value of T is 1.
2.什么是平方根升余弦成形滤波器?为什么用此滤波器?
B = RCOSFIR(R, N_T, rate, T, sqrt),升余弦成形滤波器是常用的低通filter,如果N_T是数值不是向量的话,length(B)=2*N_T_rate +1。前面介绍的升余弦滤波器的传输函数是整个系统的合成传输函数 H(f),即从发送端开始,经信道到接收滤波器的整个传输函数。接收端的滤波是对整个传输函数的补偿,它使得整体传输函数成为一个能够满足奈奎斯特第一准则(实现无码间串扰)的传输函数,例如升余弦函数。通常,把它放置在收发两端,即将接收滤波器和发送滤波器设计(匹配)为平方根升余弦函数(升余弦函数的平方根)。若不考虑由于信道引起的码间串扰,两个平方根升余弦函数相乘(相当于时域卷积)就得到升余弦形式的合成的系统传输函数。
3.在matlab中,数字信号就是一个个数,而实际中应该是有一定宽度的码元。那么,数字信号传输,它的码速和采样的速率之间关系怎么用matlab表示?如何成为有一定带宽的码元?
答:采用比例的关系表示,比如符号速率为1,采样速率为5,则每个符号有5个采样点,成型滤波器一般为4-6个符号长度,这里也即20-30个采样点(为什么说这句呢?还没懂)。
设采样速率为fs,码率为BautRate,每个码元的采样点数为numSamplesPerSymbol,它们之间的关系是fs = numSamplesPerSymbol * BautRate。
成形的意思就是实现由消息到波形的转换,以便发射,脉冲成形应该是在基带调制之后。
有两种成形方法:
第一种方法:
function [Waveform] = SymbolToWaveform(SymbolStream,numSamplesPerBit)
lenWaveform = length(SymbolStream)*numSamplesPerBit;
Waveform = zeros(1,lenWaveform);
Waveform(1:numSamplesPerBit:lenWaveform) = SymbolStream;
其中的numSamplesPerBit是每比特的采样点数,SymbolStream是比特信息流,Waveform是形成的波形。
第二种方法:
symbols=ones(T/Ts,1)*bs;
I_waveform=symbols(: ) ;
其中的bs是比特信息流,T是比特时间,Ts是采样时间,I_waveform是形成的波形。
接着,将进行低通滤波,因为 随着传输速率的增大,基带脉冲的频谱将变宽,如果不滤波(如升余弦滤波)进行低通滤波,后面加载频的时候可能会出现困难。
4.为什么数字信号传输也要过采样,成形滤波?
答:过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格
成形滤波的作用是保证采样点不失真。如果没有它,那信号在经过带限信道后,眼图张不开,ISI非常严重。成形滤波的位置在基带调制之后。因为经成形滤波后,信号的信息已经有所损失,这也是为避免ISI付出的代价。换句话说,成形滤波的位置在载波调制之前,仅挨着载波调制。
即:(发送端)插值(采样)-成形-滤波(LPF)-加载频(载波调制)-加噪声至(接收端)乘本振-低通-定时抽取-判决。
PS:
MATLAB中涉及升余弦滤波器的工具箱函数有好几个:
rcosflt 使用升余弦滤波器对输入信号进行滤波,The function rcosflt passes an input signal through a raised cosine filter. You can either let rcosflt design a raised cosine filter automatically or you can specify the raised cosine filter yourself using input arguments.
rcosine 设计升余弦滤波器,designs a finite impulse response (FIR) raised cosine filter and returns its transfer function.
rcosfir 设计升余弦FIR 滤波器,The rcosfir function designs the same filters that the rcosine function designs when the latter's type_flag argument includes 'fir'. However, rcosine is somewhat easier to use.
rcosiir 设计升余弦IIR 滤波器,The rcosiir function designs the same filters that the rcosine function designs when the latter's type_flag argument includes 'iir'. However, rcosine is somewhat easier to use.
firrcos 升余弦滤波器设计
从描述中能看出一些去别来,具体用的时候要参照实际内容选择。