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

📄 随机试验matlab程序(我的).m

📁 给定一个音频范围内的模拟强噪声随机信号(强噪声+周期信号)
💻 M
字号:
clear all;close all;
N=4096;%采样点个数
Fs=44100;%采样频率/Hz
f=1000;%信号源频率/Hz
%M=fix(Fs/f);
n=1:1:N;
t=n/Fs;
zz=1:1:2*N-1;
tq=zz/Fs;
%原始信号
   %原始信号波形
signal=30*wavrecord(N,Fs,1,'double');
figure(1);subplot(311);
plot(t,signal);
axis([0,0.02,-10,10]);
title('原始信号')
xlabel('signal(t) /s');
grid;
   %原始信号频谱
signalfft=fftshift(fft(signal,N));%对原始信号进行傅里叶变换
k=-(N-1)/2:(N-1)/2;   
T=N/Fs;%采样总时间
f1=k/T;%采样点的频率
subplot(312);
plot(f1,abs(signalfft));axis([-N,N,0,3*10^4]);
xlabel('原始信号频谱   signalfft(f)  /Hz');
   %原始信号自相关函数
[C0,LAGS0] = xcorr(signal,'unbiased');
subplot(313);
plot(LAGS0/Fs,C0);
axis([0,0.02,-100,100]);
xlabel('自相关函数    t /s');ylabel('Rsignal(t)');
grid;

fprintf('原始信号的均值为:');
signal_average = mean(signal)
fprintf('原始信号的方差为:');
signal_var = var(signal)
fprintf('原始信号的平均功率为:');
signal_Power_average=sum(abs(signal).^2)/length(signal)
  
%合成信号
Nsignal=awgn(signal,-10);%将原始信号加上高斯白噪声
   %合成信号波形
figure(2);subplot(311);
plot(t,Nsignal);
axis([0,0.02,-10,10]);
title('合成信号')
xlabel('Nsignal(t) /s');
grid;
   %合成信号频谱
Nsignalfft=fftshift(fft(Nsignal,N));%对合成信号进行傅里叶变换
k=-(N-1)/2:(N-1)/2;   
T=N/Fs;%采样总时间
f1=k/T;%采样点的频率
subplot(312);
plot(f1,abs(Nsignalfft));axis([-N,N,0,3*10^4]);
xlabel('合成信号频谱   Nsignalfft(f)  /Hz');
   %合成信号自相关函数
[C1,LAGS1] = xcorr(Nsignal,'unbiased');
subplot(313);
plot(LAGS1/Fs,C1);
axis([0,0.02,-100,100]);
xlabel('自相关函数    t /s');ylabel('Rnsignal(t)');
grid;

fprintf('合成信号的均值为:');
Nsignal_average = mean(Nsignal)
fprintf('合成信号的方差为:');
Nsignal_var = var(Nsignal)
fprintf('合成信号的平均功率为:');
Nsignal_Power_average=sum(abs(Nsignal).^2)/length(Nsignal)

%提取后的信号
%提取后的信号波形
MAX=max(sqrtt(C1*2));%由合成信号自相关函数得到原信号的幅度
Newsignal=C1*2/MAX;
figure(3);subplot(311);
plot(tq,Newsignal);
axis([0,0.02,-10,10]);
title('提取后的信号')
xlabel('Newsignal(t) /s');
grid;
   %提取后的信号频谱
Nsignalfft=fftshift(fft(Nsignal,N));
k=-(N-1)/2:(N-1)/2;   
T=N/Fs;%采样总时间
f1=k/T;%采样点的频率
subplot(312);
plot(f1,abs(Nsignalfft));axis([-N,N,0,3*10^4]);
xlabel('提取后的信号频谱   Newsignalfft(f)  /Hz');
   %提取后的信号自相关函数
[C3,LAGS3] = xcorr(Newsignal,'unbiased');
subplot(313);
plot(LAGS3/Fs,C3);
axis([0,0.02,-100,100]);
xlabel('自相关函数    t /s');ylabel('Rnewsignal(t)');
grid;

fprintf('提取后的信号的均值为:');
Newsignal_average = mean(Newsignal)
fprintf('提取后的信号的方差为:');
Newsignal_var = var(Newsignal)
fprintf('提取后的信号的平均功率为:');
Newsignal_Power_average=sum(abs(Newsignal).^2)/length(Newsignal)

⌨️ 快捷键说明

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