控制系统设计实验结果.docx
《控制系统设计实验结果.docx》由会员分享,可在线阅读,更多相关《控制系统设计实验结果.docx(13页珍藏版)》请在冰点文库上搜索。
![控制系统设计实验结果.docx](https://file1.bingdoc.com/fileroot1/2023-6/2/c6d94b2c-4250-48ab-ac2f-fc828d1fff0c/c6d94b2c-4250-48ab-ac2f-fc828d1fff0c1.gif)
控制系统设计实验结果
1.生成一个正弦波
正弦波的周期是2*pi,幅值是1
2.设定一个合适的采样频率和数据长度,绘制出正弦波的频谱图
修改一下程序:
时间取值范围语句改成:
n=0:
N-1;t=n/fs;
再加一些网格线的语句
参数:
fs=100;N=128%N的取值为2的7次方,fft算法可以加快;f=10
幅值谱如下图:
改变参数:
Fs=100;N=128;f=20
得频谱图如下图:
由频谱图可以明显的看出此正弦函数含有的频率成分分别为10HZ和20HZ,与我们设定的参数一致
3.绘制出
时域波形、频谱特性及功率谱密度,其中采样频率分别取200Hz、500Hz和1000Hz,观察曲线的不同
设置参数:
A=10,a=1,w0=130
得出各曲线如下图:
由图中可以看出,采样频率虽然不同,但信号的组成并不变,即由两种频率的信号组成
4.根据DFT的公式和已有程序,自己编写一个DFT的函数
functionXk=dft(xn,N)
xn=input('pleaseinputthexn:
');
N=input('pleaseinputtheN:
');
iflength(xn)xn=[xn,zeros(1,N-length(xn))];
end
n=0:
N-1;
t1=cputime;
fork=0:
N-1
Xk(1,k+1)=sum(xn.*exp((-1)*j*n*k*(2*pi/N)));
end
plot([1:
N],abs(Xk));
t=cputime-t1
运行:
输入xn=[1234],N=5
运行时间:
t=0.0780s
曲线:
5.将编写的DFT程序与matlab的FFT函数比较,对比两者的效率。
Time_fft=
0
Time_dft=
0.4836
由频谱图和程序运行时间可以明显的看出,在相同的计算精度下,fft函数的效率要明显比dft函数高
6.运行以下程序,对其反应的现象进行分析。
实际观测到的信号往往会含有噪声信号,这就需要我们从实际信号中提取出真实信号来,如果实际信号的信噪比比较小,直接从时域信号中提取真实信号会比较困难,而且提取出的真实信号肯定会有很大程度的失真。
快速傅里叶变换是处理数字信号的常用数学工具,实际运算表明FFT有极强的信号识别能力,快速傅里叶变换后频域信噪比相对于信号的时域信噪比要大很多,故而我们相对更容易提取出失真很小的真实信号。
以此为基础,我们还能将FFT变换应用于信号的解密与加密当中。
此处正是体现的这个原理,即使有噪声fft傅里叶分析,可以将信号的主要频率计算出来,给我们还原信号提供了有力的支持
7.在上面程序的基础上求加噪信号的自相关函数和功率谱密度
8.生成一个方波信号,在一幅图中绘制其时域波形、幅值谱特性、相关函数以及功率谱密度。
clc
clearall
closeall
%产生方波
t=0:
pi/500:
4*pi;
fs=500/pi;%采样频率
N=1000;%设置的采样点的个数
x=square(t);
subplot(4,1,1);
plot(t,x);
gridon;
axis([-1,(4*pi+1),-1.1,1.1]);
title('方波时域波形图');
xlabel('t');
ylabel('y');
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
mag=fftshift(mag);%把负频率的部分移动到负频率
f1=((-1)*(N-1)/2:
(N-1)/2)*fs/N;%横坐标频率的表达式;
subplot(4,1,2);
plot(f1,mag);%做频谱图
title('·方波信号幅频谱图');
xlabel('n');
ylabel('fft');
gridon
[a,b]=xcorr(x,'unbiased');计算序列的自相关函数
subplot(4,1,3);
plot(b/fs,a);
title('自相关函数');
nfft=N;
CXk=fft(a,nfft);%谱密度是自相关函数的傅里叶变换
Pxx=abs(CXk);%求幅值
Pxx=fftshift(Pxx);%移动到负频率
f=((-nfft+1)/2:
(nfft-1)/2)*fs/nfft;%横坐标
subplot(4,1,4);
plot(f,Pxx);
title('功率谱密度');
如下图: