
正弦信号
专家咨询费-草铵膦与草甘膦
2023年2月23日发(作者:水准测量记录表)《数字信号处理》正弦信号的波形及频谱的求解
实验⼀:⽤MATLAB实现正弦信号y=cos(1/4*pi*t)波形及频谱,画图、对每⼀⾏代码进⾏标注并完成实验报告。
1.实验代码
为实现正弦信号的波形和频谱,可通过编写傅⾥叶变换和傅⾥叶反变换的matlab函数,即编写其⼦程序,有“t2f.m”和“f2t.m”和
task.m⽂件,详细编写如下所⽰。
新建matlab函数t2f.m⽂件
新建matlab函数f2t.m⽂件
新建matlab程序,task.m⽂件
1%傅⾥叶变换⼦程序
2functionX=t2f(x)
3globaldtdfNtfT;%定义全局变量。
4%X=t2f(x)
5%x为时域的取样值⽮量
6%X为x的傅⽒变换
7%X与x长度相同,并为2的整幂。
8%本函数需要⼀个全局变量dt(时域取样间隔)
9H=fft(x);%傅⾥叶变换。
10X=[H(N/2+1:N),H(1:N/2)].*dt;%x的傅⽒变换。
11end
1%傅⾥叶反变换⼦程序
2functionx=f2t(X)
3globaldtdftfTN;%定义全局变量。
4%x=f2t(X)
5%x为时域的取样值⽮量
6%X为x的傅⽒变换
7%X与x长度相同并为2的整幂
8%本函数需要⼀个全局变量dt(时域取样间隔)
9X=[X(N/2+1:N),X(1:N/2)];%x的傅⽒变换。
10x=ifft(X)/dt;%快速反傅⾥叶变换。
11%x=[tmp(N/2+1:N),tmp(1:N/2)];
12end
1%%正弦信号的波形及频谱的求解-程序
2
3closeall;clearall;clc;
4
5
6
7globaldtdfNtfT%全局变量
8
9N=2^14;%采样点数
10
11dt=0.01;%时域采样间隔
12
13df=1/(N*dt);%频域采样间隔
14
15T=N*dt;%截短时间
16
17Bs=N*df/2;%系统带宽
18
19t=linspace(-T/2,T/2,N);%定义范围为[-T/2,T/2],个数为N。
20
21f=linspace(-Bs,Bs,N);%定义范围为[-Bs,Bs],个数为N。
2.实验结果
注意:t2f.m、f2t.m和task.m⽂件要放在同⼀个⽂件夹下。
22
23s=sin(2/3*pi*t);%正弦信号。
24
25S=t2f(s);%调⽤t2f.m⽂件。
26
27a=f2t(S);%调⽤f2t.m⽂件。
28
29figure(1);%⽣成窗⼝1。
30
31set(1,'Position',[10,350,600,200]);%设定窗⼝位置及⼤⼩
32
33figure(2);%⽣成窗⼝2。
34
35set(2,'Position',[10,50,600,200]);%设定窗⼝位置及⼤⼩
36
37figure(1)%⽣成窗⼝1。
38
39as=abs(S);%求模
40
41plot(f,as);%绘制正弦信号频谱图。
42
43axis([-2,+2,1.1*min(as),1.1*max(as)]);%设置坐标轴范围。
44
45title('正弦信号y=sin(pit/4)频谱图');%主题标注。
46
47xlabel('f(MHz)');%横轴标注。
48
49ylabel('Ps(f)');%纵轴标注。
50
51gridon;%打开⽹格。
52
53figure(2);%⽣成窗⼝2。
54
55plot(t,a);%绘制正弦信号波形图。
56
57axis([-5,5,1.1*min(a),1.1*max(a)]);%设置坐标轴范围。
58
59title('正弦信号y=sin(pit/4)波形图');%主题标注。
60
61xlabel('t');%横轴标注。
62
63ylabel('s(t)');%纵轴标注。
64
65gridon;%打开⽹格。