日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于FFT的信号频谱分析

發布時間:2025/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于FFT的信号频谱分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計要求

  • 用MATLAB產生正弦波及白噪聲信號,并顯示各自時域波形圖。
  • 進行FFT變換,顯示各自頻譜圖。
  • 做出兩種種信號的均方根圖譜,功率圖譜,以及對數方均根圖譜。
  • 用IFFT傅里葉反變換恢復信號,并顯示時域波形圖
  • 正弦波的信號頻譜分析

    正弦波源代碼

    clear all
    clc
    %*************************生成正弦信號************************% fs=100; %采樣頻率 N=128; %采樣總點數 n=0:N-1; %各個采樣點 f0=10; %正弦信號頻率 t=n/fs; %1/fs是采樣周期,采樣了128此,相對應得采樣時刻 x=sin(2*pi*f0*t); %生成正弦信號

    %********************繪圖*****************
    figure
    subplot(231);
    plot(t,x);
    xlabel('時間/s');
    ylabel('幅值');
    title('時域的波形');
    grid on;

    %**********FFT變換并畫出頻譜圖******************
    y=fft(x,N);%計算x的N點快速傅里葉變換
    FuZhi=abs(y); %幅值計算
    f=(0:length(y)-1)*fs/length(y); %將橫坐標轉化,顯示為頻率f= n*(fs/N)
    subplot(232);
    plot(f,FuZhi);
    axis([0 100 0 80]);%設置當前坐標軸 x軸 和 y軸的限制范圍
    xlabel('頻率/Hz');
    ylabel('幅值');
    title('FFT變化后幅頻譜圖');
    grid on

    %***********均方根譜**************
    z=abs(y);
    subplot(233);
    plot(f,z);
    xlabel('頻率/Hz');
    ylabel('幅值');
    title('均方根譜');
    grid on

    %**********************功率譜*************
    power=z.^2;
    subplot(234);
    plot(f,power);
    xlabel('頻率/Hz');
    ylabel('幅值');
    title('功率譜');
    grid on

    %***********對數譜******************
    ln=log(z);
    subplot(235);
    plot(f,ln);
    xlabel('頻率/Hz');
    ylabel('幅值');
    title('對數譜');
    grid on

    %**********IFFT恢復出原始信號********************
    xifft=ifft(y);
    magx=real(xifft);
    t1=(0:length(xifft)-1)/fs; %N/fs對應各個點的采樣時間點
    subplot(236);
    plot(t1,magx);
    xlabel('時間/t');
    ylabel('幅值');
    title('IFFT恢復出來的波形');
    grid on

    圖像顯示

    白噪聲的信號頻譜分析

    白噪聲源代碼

    %*****************白噪聲******************
    fs=50; %采樣頻率
    t=-5:0.1:5; %采樣時間
    x=rand(1,100); %產生1*100的隨機矩陣
    figure
    subplot(231);
    plot(t(1:100),x); %采用100個時間點
    xlabel('時間/s');
    ylabel('幅值');
    title('時域波形');
    grid on

    %************FFT變化并做頻譜圖***********
    y=fft(x);
    FuZhi=abs(y);
    f=(0:length(y)-1)*fs/length(y); %x坐標設為頻率
    subplot(232);
    plot(f,FuZhi); xlabel('頻率/Hz');
    ylabel('幅值');
    title('FFT變換的頻域波形');
    grid on

    %************均方根譜************
    z=abs(y);
    subplot(233);
    plot(f,z);
    xlabel('頻率/Hz');
    ylabel('均方根譜');
    title('均方根譜');
    grid on

    %**************功率譜**************
    power=z.^2;
    subplot(234);
    plot(f,power);
    xlabel('頻率/Hz');
    ylabel('功率譜');
    title('功率譜');
    grid on

    %************對數譜**********
    ln=log(z);
    subplot(235);
    plot(f,ln);
    xlabel('頻率/Hz');
    ylabel('對數譜');
    title('對數譜');
    grid on

    %***************IFFT恢復************
    xifft=ifft(y);
    mag=real(xifft);
    ti=(0:length(xifft)-1)/fs;
    subplot(236);
    plot(ti,mag);
    xlabel('時間/s');
    ylabel('幅值');
    title('IFFT恢復后的波形');
    grid on

    圖像顯示

    總結

    以上是生活随笔為你收集整理的基于FFT的信号频谱分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。