matlab如何表示一个离散信号
离散信号通俗地讲就是数字信号。简单的表示为一个矢量序列。离散信号具有严格的数学意义,在信号处理领域一般用冲激响应序列来表示(狄拉克δ函数)。离散信号的数学意义经常被忽略,这阻碍了对DSP信号处理的深入理解,例如离散傅立叶变换,数字滤波,谱分析等。
离散信号的数学表示举例如下:
离散信号x=[1 2 3 4],对应的时间信号为:1*δ(n)+2*δ(n-1)+3*δ(n-2)+4*δ(n-3)
Matlab提供了强大的数字信号处理能力。包括离散信号的显示,滤波/变换处理等。离散信号的显示一般用stem()函数。
以下以一个简单的数字滤波器为例,来演示离散信号的产生,处理和输出显示。这个例程对理解Matlab数字信号处理具有很好的借鉴意义。
%===========================================
Fs = 500;%设置采样率,可调
N = 200;%离散信号的长度,可以自由调整
f1 = 10;%离散信号1的频率,可调,不要大于Fs/2.
f2 = 200;%离散信号2的频率,可调,不要大于Fs/2.
t = 0:N-1;%离散信号对应的时间序列
x = cos(2*pi*f1*t/Fs)+cos(2*pi*f2*t/Fs);%离散信号的产生
b = fir1(7,0.1);%设计简单7阶低通FIR滤波器
y = filter(b,1,x);%对离散信号进行低通滤波处理
figure(1)
freqz(b)%显示7阶低通FIR滤波器的频谱特性
figure(2)
subplot(211)
stem(x);%显示输入离散信号
subplot(212)
stem(y);%显示输出离散信号滤波后的效果。
%===========================================
结果如下.可以看出f2=200Hz的离散信号被低通滤波了,只剩下了f1=10Hz的低频信号。