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

📄 addniose.m

📁 cdma 系统级仿真
💻 M
字号:
%加噪声和多径
%function y=addnoise()
clc;
clear all;
close all;
%*** 再设计rafa为0.35的平方根升余弦滤波器做信道滤波器 ***%低通滤波器
windowlength=27;%窗口长度
beginsin=14;
sinlength=14;

period=80;
fftlength=17;%快速付利叶变换长度
nn6=1:windowlength;
line1=[(nn6-0)>=0];
line2=[(nn6-beginsin)>=0];
ditong(nn6)=line1-line2;
nn7=beginsin:windowlength;
rafa=linspace(0,0.5,sinlength);%生成14点线性向量,在0-0.5之间且包括0和0.5
ditong(nn7)=cos(rafa*pi);
ditong(period-windowlength+2:period)=fliplr(ditong(2:windowlength));
Hditong=ditong;
for nn8=1:fftlength*2      %作IDFT变换求得滤波器的时域特性
    nn9=1:length(Hditong);%80
    htemp(nn9)=Hditong(nn9).*cos(2*pi*(nn9-1)*(nn8-1)/period);
    hditong1(nn8)=sum(htemp(nn9));
end; 
fftline=12;
omiga=linspace(0,1,fftlength-fftline);
hintercept(1:fftline)=1;         %长度为34的升余弦窗
hintercept(fftline+1:fftlength)=0.5*(1+cos(omiga*pi));
hintercept(fftlength+1:length(hditong1))=0;
hditong2=hintercept.*hditong1;      %用升余弦窗截取
hditong3=hditong2(1:fftlength)/length(Hditong);    % 滤波器归一化 
hditong4=fliplr(hditong3);
hditong(1:fftlength)=hditong4(1:fftlength);
hditong(fftlength+1:fftlength*2-1)=hditong3(2:fftlength);%33点
%**************************************************************************
%*** 加多径 ***%Multipath Fading
tao=[0 1 2 5 8];   %多径时延
multi_plus=[1 0.41 0.27 0.18 0.06];   %多径分量的幅度
% multi_plus=[1 0 0 0 0];   %相当于不加多径
newditong=zeros(length(tao),length(hditong)+max(tao));
for multindex=1:length(tao)
newditong(multindex,tao(multindex)+1:length(hditong)+tao(multindex))=multi_plus(multindex).*hditong(1,:);
end;    %(行号     ,此行的元素(A:B为A列至B列)                        )矩阵
multiditong=sum(newditong);   %存在多径的信道冲激响应,sum(A)返回一行向量,其元素为矩阵A对应列向量的和
fft_multi=abs(fft(multiditong));
fft_hditong=abs(fft(hditong));

throughditongI=filter(multiditong,1,interzerosI);       %通过多径信道后的 I 路信号
throughditongQ=filter(multiditong,1,interzerosQ);       %通过多径信道后的 Q 路信号

%**************************************************************************
%*** 产生加性噪声 ***%
S_I=sum(throughditongI.^2)/length(throughditongI);%信号平均功率
S_Q=sum(throughditongQ.^2)/length(throughditongQ);%信号平均功率
S_power=(S_I+S_Q)/2;%信号平均功率
snr_db=8;   %信噪比
snr=10^(snr_db/10);
N_hope=S_power/snr;
noise1=randn(1,length(throughditongI));
noisethrougth=filter(multiditong,1,noise1);
N_power=sum(noisethrougth.^2)/length(noisethrougth);%噪声平均功率
bizhi=sqrt(N_hope/N_power);%??根据信噪比调整噪声幅度?
noise=bizhi*noisethrougth;

⌨️ 快捷键说明

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