美文网首页嵌牛IT观察
信号采集存储与变换

信号采集存储与变换

作者: Ivan07 | 来源:发表于2020-12-14 10:16 被阅读0次

    姓名:毛浩 学号:17029250003

    【嵌牛导读】雷达信号的采集变换。

    【嵌牛鼻子】信号采集处理

    【嵌牛提问】雷达信号类型
    【嵌牛正文】

    @(实验一)[白噪声|频谱分析]


    [TOC]

    实验要求

    采集语音信号,模拟不同白噪声(均匀、高斯、瑞利),信号混合,频谱分析

    实验原理

    采样定理

    在进行模数信号转换过程中,当采样频率fs大于信号最高频率的两倍时,采样后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样率为信号最高频率的5-10倍。

    白噪声

    白噪声(white noise)是指功率谱密度在整个频域内是常数的噪声。 所有频率具有相同能量密度的随机噪声称为白噪声。


    白噪声.jpg

    均匀白噪声

    是指功率谱密度在整个频域内是常数的噪声。 所有频率具有相同能量密度的随机噪声称为白噪声。


    均匀白噪声.jpg

    高斯白噪声

    高斯白噪声是幅度统计规律服从高斯分布而功率谱为常数的噪声


    高斯白噪声.jpg

    瑞利白噪声

    瑞利白噪声是幅度统计规律服从瑞利分布而功率谱为常数的噪声


    瑞利白噪声.jpg

    信噪比

    信噪比是指信号最大幅值和噪声的最大幅值的比,用信号最大幅值除以噪声最大幅值所得结果即是。

    实验过程

    采集信号

    使用audiorecorder函数,录音五秒的语音信号,再使用audiowrite(filename,y,Fs)函数,以采样率Fs将录制的语音信号y写入名为filename的文件中,由于语音信号的频谱主要集中在300-3400Hz的范围内,根据采样定理,选取采样率Fs为8kHz。

    产生噪声

    根据题目要求,利用rand、randn、raylrnd函数分别产生与语音信号等长度的均匀白噪声,高斯白噪声与瑞利白噪声。


    杂波时域.png
    杂波频域.png

    信号分析

    用plot函数绘制出加噪声后语音信号的时域波形;对语音信号进行N点的离散傅里叶变换,N为语音信号的长度,绘制出加噪声后语音信号的频谱图。


    原始信号时频.jpg

    如图所示,整段音频中声音的高低起伏与录入的声音信号基本一致,且频率主要集中在低频区

    加均匀白噪声

    加均匀.jpg

    加高斯白噪声

    加高斯.jpg

    加瑞利白噪声

    加瑞利.jpg

    实验结果分析

    通过原始语音信号与加噪后语音信号时域波形与频谱图的对比,可以看出加噪声后的语音信号的时域波形比原始语音信号模糊很多,频谱图中,原始信号在高频几乎没有频谱成分,而加噪后信号在高频仍存在。

    附录

    杂波分析

    fs=48000;
    figure(1)
           gnoes=normrnd(0,1,1,96255);
           subplot(311);plot(gnoes,'m')
           axis([0 96255 -6 6]);xlabel('高斯分布杂波');
           ray=raylrnd(2,1,96255);
           subplot(312);plot(ray,'c')
           axis([0 96255 0 16]); xlabel('瑞利分布杂波')
           unif=rand(1,96255);     
           subplot(313);plot(unif,'g')
           axis([0 96255 0 2]); xlabel('均匀分布杂波');
    figure(2)
           NFFT=2^nextpow2(length(gnoes));
           b_1=fft(gnoes,NFFT)/length(gnoes);
           f=fs/2*linspace(0,1,NFFT/2+1);
           subplot(311);plot(f,abs(b_1(1:NFFT/2+1)));
           axis([0 length(f)/2 0 0.03]);xlabel('高斯分布杂波频谱');
           b_2=fft(ray,NFFT)/length(ray);
           subplot(312);plot(f,abs(b_2(1:NFFT/2+1)));
           axis([0 length(f)/2  0 0.04]);xlabel('瑞利分布杂波频谱')     
           b_3=fft(unif,NFFT)/length(unif);
           subplot(313);plot(f,abs(b_3(1:NFFT/2+1)));
           axis([0 length(f)/2  0 0.01]);xlabel('均匀分布杂波频谱');
    
    

    加噪信号分析

    clear;
    [y,fs]=audioread('C:\Users\XJH\Documents\work\voice.m4a');
    sound(y,fs)      % 回放语音信号
    n=length(y);  %选取变换的点数 
    y_p=fft(y,n);      %对n点进行傅里叶变换到频域
    f=fs*(0:n/2-1)/n;   % 对应点的频率
    figure(1)
    subplot(2,1,1);
    plot(y);                    %语音信号的时域波形图
    title('原始语音信号采样后时域波形');
    xlabel('时间轴')
    ylabel('幅值 A')
    subplot(2,1,2);
    plot(f,abs(y_p(1:n/2)));     %语音信号的频谱图
    title('原始语音信号采样后频谱图');
    xlabel('频率Hz');
    ylabel('频率幅值');
    
    
      L=length(y) ;       %计算音频信号的长度
      
      
    % %产生等长度的均匀白噪声
      noise=0.3*rand(L,2);   
     
    % %产生等长度的高斯白噪声
    % noise=0.05*randn(L,2); 
     
    % %产生等长度的瑞利白噪声
    %  B=1;                   
    %  noise=0.1*raylrnd(B,L,2);
    
    
    y_z=y+noise;        %叠加   
    pause(5)
    sound(y_z,fs)
      
      
    %对加噪后的语音信号进行分析
    n=length(y);  %选取变换的点数 
    y_zp=fft(y_z,n);     
    f=fs*(0:n/2-1)/n; 
    figure(2)
    subplot(2,1,1);
    plot(y_z);                    %加噪语音信号的时域波形图
    title('加噪语音信号时域波形');
    xlabel('时间轴')
    ylabel('幅值 A')
    subplot(2,1,2);
    plot(f,abs(y_zp(1:n/2)));     %加噪语音信号的频谱图
    title('加噪语音信号频谱图');
    xlabel('频率Hz');
    ylabel('频率幅值');
    axis([0 2.5e4 0 400]);
    
    
    
    
    
    %FIR滤波器设计
    fp=1500;fc=1700;As=100;Ap=1;
    wc=2*pi*fc/fs; wp=2*pi*fp/fs;
    wdel=wc-wp;
    beta=0.112*(As-8.7);
    N=ceil((As-8)/2.285/wdel);
    wn= kaiser(N+1,beta);
    ws=(wp+wc)/2/pi;
    b=fir1(N,ws,wn);
    figure(3);
    freqz(b,1);
    title('低通滤波器的幅频图');
    xlabel('频率');
    ylabel('幅度');
    
    
    %信号滤波
    x=fftfilt(b,y_z);
    X=fft(x,n);
    figure(4);
    subplot(2,2,1);plot(f,abs(y_zp(1:n/2)));
    axis([0 4e4 0 400]);
    title('滤波前信号的频谱');
    subplot(2,2,2);plot(abs(X));
    axis([0 4e4 0 400]);
    title('滤波后信号频谱');
    subplot(2,2,3);plot(y_z);
    title('滤波前信号的波形')
    subplot(2,2,4);plot(x);
    title('滤波后信号的波形')
    
    pause(5);
    sound(x,fs)
    
    

    相关文章

      网友评论

        本文标题:信号采集存储与变换

        本文链接:https://www.haomeiwen.com/subject/iwtvgktx.html