⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 正弦波源程序.m

📁 正弦波源程序————matlab 正弦波源程序
💻 M
字号:
 function x=f2t(X)

   global dt df t f T N

   %x=f2t(X)

   %x为时域的取样值矢量

   %X为x的傅氏变换

   %X与x长度相同并为2的整幂

   %本函数需要一个全局变量dt(时域取样间隔)

   X=[X(N/2+1:N),X(1:N/2)];

   x=ifft(X)/dt;

   end 


 
2,t2f函数。

   function X=t2f(x)

   global dt df N t f T

   %X=t2f(x)

   %x为时域的取样值矢量

   %X为x的傅氏变换

   %X与x长度相同,并为2的整幂。 

   %本函数需要一个全局变量dt(时域取样间隔)

   H=fft(x);

   X=[H(N/2+1:N),H(1:N/2)]*dt;

   end

 

(二),主程序。

   1,%(1)绘出正弦信号波形及频谱

   global dt df t f N 

   close all

   k=input('取样点数=2^k, k取10左右');

   if isempty(k), k=10; end

   f0=input('f0=取1(kz)左右');

   if isempty(f0), f0=1; end
   *******************************************************************
   k=10;                          %以下能运行
   N=2^k;
   f0=1;
   dt=0.01;                        %ms

   df=1/(N*dt);                    %KHz

   T=N*dt;                         %截短时间

   Bs=N*df/2;                      %系统带宽

   f=[-Bs+df/2:df:Bs];             %频域横坐标

   t=[-T/2+dt/2:dt:T/2];           %时域横坐标

   s=sin(2*pi*f0*t);               %输入的正弦信号

   S=fft(s);                       %S是s的傅氏变换

   a=fft(S);                       %a是S的傅氏反变换

   a=real(a);

   as=abs(S);

   subplot(2,1,1);                  %输出的频谱 

   plot(f,as,'b');

   grid;

   axis([-2*f0,+2*f0,min(as),max(as)]); 

   xlabel('f (KHz)');

   ylabel('|S(f)| (V/KHz)'); %figure(2)

   subplot(2,1,2);

   plot(t,a,'black');                   %输出信号波形画图

   grid;

   axis([-2/f0,+2/f0,-1.5,1.5]);

   xlabel('t(ms)');

   ylabel('a(t)(V)');

   gtext('频谱图');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -