当前位置:文档之家› 北工大matlab作业实验报告

北工大matlab作业实验报告

北工大MATLAB实验报告
完成日期:2018.12
目录
实验一用FFT进行谱分析 (3)
一、实验内容 (3)
二、实验过程 (3)
三、实验代码 (4)
四、实验结果及分析 (5)
五、实验心得 (5)
实验二噪声数据的抑制 (6)
一、实验内容 (6)
二、实验过程 (7)
三、实验结果分析 (14)
四、实验心得 (15)
参考文献 (15)
实验一用FFT进行谱分析
一、实验内容
FFT的用途之一是找出隐藏或淹没在噪声时域信号中信号的频率成分。

本题要求用FFT 对试验数据进行谱分析,指出数据包含的频率成份。

提示:首先建立试验数据。

过程推荐如下:生成一个包含两个频率成分的试验信号,对这个信号加入随机噪声,形成一个加噪信号y。

(试验数据参数推荐为:数据采样频率为1000Hz,时间区间从t=0到t=0.25,步长0.001秒,噪声的标准偏差为2,两个频率成分的试验信号可取50Hz和120Hz)。

(1)绘制加噪信号y它的波形。

(2)求出含噪声信号y的离散傅立叶变换(取它的FFT),(FFT试验参数推荐为:256点)。

(3)求出信号的功率谱密度(它是不同频率所含能量的度量),并绘制功率谱图,标记出两个频谱峰值对应的频率分量。

二、实验过程
1.打开matlab软件,根据实验要求,用已知条件求出重要参数:
N=256;
n=0:N-1;
t=n/fs;
2.绘制加入了噪声信号的y图象:
y=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t));
subplot(2,2,1);
plot(y);title('y的波形');
3.对y求付里叶变换:
Y=fft(y,N);
4.绘制Y的幅值图象:
fudu=abs(Y);
f=n*fs/N;
subplot(2,2,2)
plot(f,fudu);
5.抽取256点进行绘图:
subplot(2,2,3)
plot(f(1:N/2),fudu(1:N/2));
6.利用y的自相关函数求出y的功率谱,并绘图:
y2=xcorr(y,'unbiased');
y2p=fft(y2,N);
yk=abs(y2p);
subplot(2,2,4)
plot(f(1:N/2),yk(1:N/2));title('功率谱')
三、实验代码
N=256;
n=0:N-1;
t=n/fs;
y=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t)); subplot(2,2,1);
plot(y);title('y的波形');
Y=fft(y,N);
fudu=abs(Y);
f=n*fs/N;
subplot(2,2,2)
plot(f,fudu)
subplot(2,2,3)
plot(f(1:N/2),fudu(1:N/2));
y2=xcorr(y,'unbiased');
y2p=fft(y2,N);
yk=abs(y2p);
subplot(2,2,4)
plot(f(1:N/2),yk(1:N/2));title('功率谱')
四、实验结果及分析
结果分析:功率谱的两个峰值对应的频率分别为:f=50Hz和120Hz
五、实验心得
学习了一个学期的MATLAB,现在终于能够进行一次实践了。

实验过程中,总会出现一些错误。

这些错误经常是因为错误使用标点造成的。

所以,在编程的过程中要十分小心。

虽然这只是一次小实验,但我感觉到了这个软件功能的强大,以后我还会更加深入地学习。

实验二 噪声数据的抑制
一、 实验内容
考虑一组实际数据,它可以用以下公式建模:
11.02cos(284)040()2
0n
n n x n ππ⎧++≤≤⎪
=⎨⎪⎩
其它
可以看出,这是在缓慢变化的指数信号分量(1.02n
)上叠加了一个正弦干扰噪声序列。

试设计一种算法(滤波器),要求在()x n 中能够抑制、甚至消除这个正弦干扰噪声。

提示:可以考虑用L 点移动平均滤波器(MA )对()x n 进行滤波处理,若L=3,并用()x n 作为MA 滤波器的输入信号,则其输出:
[]2
1()()
31
()(1)(2)3
i y n x n i x n x n x n ==-=+-+-∑
是3个最近的输入值的数字平均。

3点MA 的框图模型见图。

图3点MA 滤波器的框图
更长长度的MA 滤波器有可能产生更好的噪声抑制效果,请试验选取7点MA 滤波器,即:
6
1()()7i y n x n i ==-∑
给出试验结果。

二、实验过程
1.打开simulink,并选择所需要的模板,然后开始放置元件
2.首先产生一个指数信号
(1)我一开始用的是rate limiter来产生时钟信号n
(2)后来发现可以用ramp产生时间信号,使图象更加简单
(3)设置参数:
(4)然后进行一次仿真,波形图如下:
产生时钟信号(5)接下来建立指数信号
(6)进行仿真,波形如下:
(7)但我们需要的非零值区间为[0,40],根据上前面的波形图,很明显不是实验所需要的信号,所以,利用两个单位阶跃信号相减建立窗函数:
(8)进行一次仿真,波形如下:
所以,得到了所需要的窗信号(9)将窗信号与指数信号相乘
(10)进行仿真,波形如下
这便是我们所需要的指数信号
(11)类似于上述的方法,建立噪声正弦波信号,并进行仿真,如下
仿真波形:
(12)接着,将这两部分信号叠加,得到输入信号x(n):
仿真波形:
(13)建立七点MA滤波器进行滤波:
仿真波形:
三、实验结果分析
七点MA滤波器对抑制信号有良好效果
四、实验心得
本次实验花相当长的时间,一开始觉得题目挺简单的,但是由于Simulink软件用提不熟练,所以大部分时间用来探索元器件的使用和功能上。

在图书馆翻阅了很多资料,但还是处于一知半解状态。

再从网上查找资料,用了特别多的时间。

不过,最后还是把实验做完了,还是感到很开心的。

参考文献
1.《Matlab软件基础教程》罗杰,陕西师范大学出版总社有限公司
2.《MATLAB 8.X实战指南》赵小川,清华大学出版社
3.《数字信号处理导论》胡广书,清华大学出版社
4.《MATLAB图像处理编程与应用》张涛,机械工业出版社
5.《MATLAB应用与实验教程》贺超英,电子工业出版社。

相关主题