✅ 操作成功!

正弦信号

发布时间:2023-06-08 作者:admin 来源:文学

正弦信号

正弦信号

专家咨询费-草铵膦与草甘膦

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;%打开⽹格。

👁️ 阅读量:0