实验5 频谱分析与滤波

来源:互联网 发布:mobiscroll.js官网 编辑:程序博客网 时间:2024/06/05 05:02

5.1 试验目的
熟悉信号的频谱分析与信号滤波。
5.2实验内容
5.2.1 信号的频谱分析
建立一个含20Hz和100Hz幅值为2的正弦信号(sin),然后叠加一个幅值为1的随机信号,利用Matlab分析其频谱。
5.2.2 滤波
接上题,滤除噪声信号和100Hz正弦信号。(启动Demo,在地址栏输入Signal Processing Demo: filtdem)
5.3实验提示
5.3.1 FFT谱分析
FFT通常可用于含噪声的时域信号的频率组成。
fs=1000; %采样频率为1000 Hz
t = 0:1/fs:.25; %设定时间轴,t=0 到.25,时间步长为1毫秒
x = sin(2*pi*50*t) + sin(2*pi*120*t); %建立信号,含50 Hz 、120 Hz的正弦信号
y = x + 2*randn(size(t)); %加入随机信号,幅值为2的噪声信号。
plot(y(1:50)); %很难分辨信号的频率组成
Y = fft(y,256); %256点快速傅立叶变换FFT
Pyy = Y.*conj(Y)/256; %复共轭(CONJ)计算功率谱密度
f = fs/256*(0:127); %为前128数据点(后128点与支对称)建立频率轴。
figure(2); %开第二个图形窗,并在该窗口画出第二个图形
plot(f,Pyy(1:128)); %注意到在50 Hz和120 Hz有两个波峰
xlabel(‘Frequency (Hz)’)

这里写图片描述
图 噪声信号
这里写图片描述
图2 功率谱

5.3.2 滤波
某目标信号是由5、15、30Hz正弦波混合而成的混合信号,现需要设计一个滤波器滤掉5、30Hz两种频率。
分析,显然我们应该设计一个带通滤波器,通带频率落在15Hz附近。
Fs = 100; %采样点数
t = (1:100)/Fs; %采样频率
s1 = sin(2*pi*t*5); s2=sin(2*pi*t*15); s3=sin(2*pi*t*30); %5、15、30赫兹
s = s1+s2+s3; %信号叠加
plot(t,s); %显示信号
[b,a] = ellip(4,0.1,40,[10 20]*2/Fs); %设置滤波器

%下面四行可以不操作
[H,w] = freqz(b,a,512); %数字滤波器频响
plot(w*Fs/(2*pi),abs(H)); %显示频率响应
xlabel(‘Frequency (Hz)’); ylabel(‘Mag. of frequency response’); %设定标签
grid; %显示网格
%上面四行可以不操作

sf = filter(b,a,s); %数字滤波
plot(t,sf); %显示滤波结果
axis([0 1 -1 1]); %设定轴刻度
查找帮助看看ellip的参数,注意通带的设置以及采样频率、采样点数的选取。
函数ellip的简要说明,ellip(4,0.1,40,[10 20]*2/Fs),其中的4是滤波器的阶数,这里为4阶滤波器,通带衰减为0.1 dB,阻带衰减为40 dB,[10 20]为通频带10~20Hz,注意最后一项的值必须大于0小于等于1。
Example 1
For data sampled at 1000?Hz, design a sixth-order lowpass
elliptic filter with a passband edge frequency of 300?Hz,
which corresponds to a normalized value of 0.6, 3?dB of ripple
in the passband, and 50?dB of attenuation in the stopband:[b,a] = ellip(6,3,50,300/500);
The filter’s frequency response isfreqz(b,a,512,1000)
title(‘n=6 Lowpass Elliptic Filter’)

Example 2
Design a 20th-order bandpass elliptic filter with a passband from 100
to 200?Hz and plot its impulse response:n = 10; Rp = 0.5; Rs = 20;
Wp = [100 200]/500;
[b,a] = ellip(n,Rp,Rs,Wp);
[y,t] = impz(b,a,101); stem(t,y)
title(‘Impulse Response of n=10 Elliptic Filter’)

提示:
试一下调节ellip函数中的各参数,看看各种参数对结果的影响,调节一下通频带,分别取出5Hz或30Hz的信号分量。