• [Matlab]频率f,角频率Ω和数字频率w的物理含义


    需要结合

    http://anony3721.blog.163.com/blog/static/51197420111129503233/

    或者

    https://blog.csdn.net/xiaoyanwin/article/details/15420707

    食用。

    %信号处理中的各种频率
    %freqs.m
    %MatlabR2015b
    %2018年6月4日 09:46:34
    
    clear;
    close all;
    clc;
    %模拟角频率 Omega: rad/s
    %物理意义:在2*pi的时间段里面包含的y=sin(Omega*t)正弦信号的个数
    t = 0:pi/100:2*pi;
    for Omega = 1:4
        y(:,Omega) = sin(Omega*t);
        str{Omega} = ['Omega=',num2str(Omega)];
    end
    
    figure('Position',[ 300 300 750 500]);
    h = plot(t',y);
    title('模拟角频率Omega');
    axis([0,2*pi+0.1 -1.05 1.05 ]);
    legend(h,str);
    grid on;
    
    %模拟频率f: hz
    %物理意义:在1s的时间段内含有f个y=sin(f*t)完整周期的波形信号
    clear;
    t = 0:1/200:1;
    for f = 1:4
        y(:,f) = sin(2*pi*f*t);
        str{f} = ['f=',num2str(f)];
    end
    figure('Position',[ 300 300 750 500]);
    h = plot(t',y);
    axis([0,1.05 -1.05 1.05 ]);
    title('模拟频率f');
    legend(h,str);
    
    
    %数字频率w(归一化过的)
    %1.数字频率必须跟采样周期Ts结合在一起才有意义
    %2.数字频率是从单位圆上N点等间隔采样而来的,这个N就是数字周期
    %3.数字频率和数字周期之间的关系 w = k*2*pi/N
    %4.数字频率w和模拟频率之间的关系:
    % w = Omega*Ts = Omega/Fs,使用Fs归一化后的频率
    clear;
    w = pi/4;
    N = 2*pi/w;  %N = 8
    n = 0:N-1;
    x = sin(n*w);  %生成离散序列
    figure('Position',[ 300 300 750 500]);
    subplot(2,1,1);
    stem(n,x);
    title('数字频率固定的离散信号');
    xlabel('n');
    Fs = 1000; %采样频率是1000Hz
    Ts = 1/Fs;
    t = n*Ts;%对应连续信号时刻
    T = N*Ts;%模拟周期
    f = w*Fs/(2*pi); %信号的真实频率
    subplot(2,1,2);
    plot(t,x);
    xlabel('t:s');
    title('抽样频率已知后对应的时域信号')
    freq = n*Fs/N - Fs/2; %真正的双边谱频率量
    X = fftshift(abs(fft(x))); %频谱搬移
    x_ifft = ifft(fft(x));
    figure('Position',[ 300 300 750 500]);
    subplot(3,1,1);
    plot(freq,X);
    xlabel('f');
    title('8点抽样得到的双边频率幅度特性');
    grid on;
    subplot(3,1,2);
    stem(t,x_ifft);
    title('逆FFT后的时域波形')
    xlabel('n');
    subplot(3,1,3);
    stem(t,x);
    title('原时域波形');
    xlabel('n');
    
    %fft补0
    Nfft = 1024;
    X_Nfft = fftshift(abs(fft(x,Nfft)));
    freqNormalized = (-Nfft/2:Nfft/2-1)/Nfft;
    figure('Position',[ 300 300 750 500]);
    subplot(3,1,1);
    plot(freqNormalized,X_Nfft);
    title('补0后频率幅度特性');
    xlabel('omega');
    subplot(3,1,2);
    plot(freqNormalized(1:1024/8:end),X_Nfft(1:1024/8:end));
    title('补0后抽取得到的频率幅度特性');
    xlabel('omega');
    subplot(3,1,3);
    plot(freq/Fs,X);
    title('补0前频率幅度特性');
    xlabel('omega');
    
    
    
    %0~N-1 和 1~N的区别
    clear;
    N = 100; %数字周期N
    Fs = 2000; %采样频率
    Ts = 1/Fs;%采样周期
    n = 1:N;%频率点
    w = 0.02*pi;
    x = sin(w*n); %数字频率 w = 0.02*pi
    t = n*Ts;
    T = N*Ts;
    f = w*Fs/(2*pi);
    freq1 = n*Fs/N - Fs/N;
    X = abs(fft(x));
    figure('Position',[ 300 300 750 500]);
    subplot(3,1,1);
    stem(t,x);
    xlabel('n');
    title('时域波形')
    subplot(3,1,2);
    plot(freq1,X);
    title('1~N频域幅度特性');
    xlabel('f');
    subplot(3,1,3);
    freq =  (n-1)*Fs/N - Fs/2;
    plot(freq,fftshift(abs(fft(x))));
    title('0~N-1频域幅度特性');
    xlabel('f');
    grid on;
    

      

    ~不再更新,都不让我写公式,博客园太拉胯了
  • 相关阅读:
    对象数组深拷贝
    百度地图 轨迹
    vant mp-vue
    Nginx代理webSocket时60s自动断开, 怎么保持长连接
    python_传递任意数量的实参
    python_函数传递列表
    python_形参、实参
    python_函数、局部变量与全局变量
    python_三级字典
    python_字典的使用
  • 原文地址:https://www.cnblogs.com/alimy/p/9132694.html
Copyright © 2020-2023  润新知