fs = 1e6; dt = 1/fs; t = 0:dt:0.01-dt; fc= 32e3; carrier = sin(2pifct); SRate = 2e3; SWidth = fs/SRate; N=length(t)/SWidth; PNCode = round(rand(1,N)); for i=0:N-1 if(PNCode(i+1)==1) PNWave(iSWidth+1:(i+1)SWidth)=ones(1,SWidth); else PNWave(iSWidth+1:(i+1)SWidth)=ones(1,SWidth)(-1); end end BPSK = PNWave.carrier; %%%++++++++++++++产生 m 序列++++++++++++++++%%% n=7; %阶数 n Connection = [3 7]; Initialstate=[1 1 1 0 1 1 0]; num=1; out = zeros(num,2^n-1); pos = zeros(n,1); pos(Connection) = 1; for ii=1:2^n-1 out(1,ii) = Initialstate(n); temp = mod(Initialstatepos,2); Initialstate(2:n) = Initialstate(1:n-1); Initialstate(1) = temp; end %%%++++++++++++++产生 m 序列脉冲++++++++++++++++%%% SRatem=1e4; SWidth1 = fs/SRatem; N1=length(t)/SWidth1; for i=0:N1-1 if(out(1,i+1)==1) PN(i*SWidth1+1:(i+1)SWidth1)=ones(1,SWidth1); else PN(iSWidth1+1:(i+1)SWidth1)=ones(1,SWidth1)(-1); end end %%%++++++++++++++扩频通信++++++++++++++++%%% DS_BPSK=BPSK.*PN; %%%++++++++++++++解扩++++++++++++++++%%% BPSK1 = DS_BPSK.*PN; %%%++++++++++++++解调++++++++++++++++%%% seq = BPSK1.*carrier; fp1 = 2e3+10; %通带截止频率 fs1 = 4e3; %阻带截止频率 Ws=(fp1+fs1)/fs; %截止频率归一化处理[(fp+fs)/2]/(fs/2),处理信号最高频率上限为 fs/2 M=250; %计算所需滤波器的阶数 hanming=hamming(M+1); %生成长度为 M+1 的汉明窗窗 LPF=fir1(M,Ws,hanming); %生成汉明窗设计的 fir 滤波器 BPSK_De=filter(LPF,1,seq); %用滤波器对信号进行滤波 LenPlot = 2000; figure; subplot(4,1,1); plot(PNWave(1:LenPlot),'linewidth',3); title('双极性不归零随机序列'); subplot(4,1,2); plot(BPSK(1:LenPlot)); title('二进制绝对相移键控'); subplot(4,1,3); plot( PN(1:LenPlot)); title('m 序列脉冲'); subplot(4,1,4); plot(DS_BPSK(1:LenPlot)); title('直接序列扩频波形'); figure; subplot(4,1,1); plot(PNWave(1:LenPlot),'linewidth',3);title('双极性不归零随机序列'); subplot(4,1,2); plot(BPSK1(1:LenPlot));title('解扩信号'); subplot(4,1,3); plot(seq(1:LenPlot));title('乘法器-解调信号'); subplot(4,1,4); plot(BPSK_De(1:LenPlot));title('解调信号');
时间: 2024-04-28 14:20:51 浏览: 165
好的,以下是接续您提供的代码的抽样判决代码:
%%%++++++++++++++抽样判决代码++++++++++++++++%%%
threshold = 0; % 判决门限值
BPSK_De1 = BPSK_De > threshold; % 抽样判决
figure;
subplot(2,1,1);
plot(BPSK_De(1:LenPlot)); title('解调信号');
subplot(2,1,2);
plot(BPSK_De1(1:LenPlot)); title('抽样判决信号');
请注意,这段代码将解调信号进行了抽样判决,并将结果存储在 BPSK_De1 中。判决门限值可以根据实际情况进行调整。
相关问题
fc fc = 10e3; fs = 100e3; t = 0:1/fs:1-1/fs; Ac = 1; carrier = Ac * cos(2*pi*fc*t); fm = 1e3; Am = 0.5;
以上代码定义了一个调频信号,其中:
- `fc` 为载波频率,设为10kHz
- `fs` 为采样频率,设为100kHz
- `t` 为时间轴,从0开始,采样间隔为1/fs,采样时长为1秒
- `Ac` 为载波幅度,设为1
- `carrier` 为载波信号,采用正弦波,频率为fc,幅度为Ac
- `fm` 为调制信号频率,设为1kHz
- `Am` 为调制信号幅度,设为0.5
接下来需要将调制信号和载波信号进行调制操作,产生一个调制后的信号。具体可以使用如下代码实现:
```
modulated_signal = Ac * cos(2*pi*fc*t + 2*pi*Am/fm*sin(2*pi*fm*t));
```
这里使用了余弦调制,其中 `2*pi*Am/fm*sin(2*pi*fm*t)` 表示调制信号,通过 `cos(2*pi*fc*t + 2*pi*Am/fm*sin(2*pi*fm*t))` 将其调制到载波上。最终得到的 `modulated_signal` 即为调制后的信号。
设y(t)=(A+M*cos2pi*fm*t)*cos2pi*fc*t 其中M=2,fm=1000hz,A=2,fc=10000hz,取样率为100000,取样间隔为0.00001,补全以下程序 参考程序: dt=1e-5; T=3*1e-3; t=0:dt:T; fs=1/dt; %抽样频率 df=fs/length(t); %频率分辨率 f=-fs/2:df:fs/2-df; %频率绘制区间 M=2; fm=1e3; A=2 fc=1e4 input=M*cos(2*pi*fm*t); INPUT=fft(input); %绘制调制信号频谱 %fft 函数实现从时域到频域的转换(fft—快速傅里叶变换) carrier=cos( ); envelop_AM=input+( ); output=( ).*carrier; CARRIER=fft( ); %绘制载波频谱 OUTPUT=fft( ); %绘制已调信号频谱 figure; subplot(3,1,1);plot(t,input); xlabel('时间/s');ylabel('调制信号'); ……. subplot(3,1,1); plot(f,abs(fftshift(INPUT))); % fft 变换的结果需要使用 fftshift 修正偏移 title('基带信号频谱'); % abs 函数为取修正结果的绝对值 …….
dt=1e-5;
T=3*1e-3;
t=0:dt:T;
fs=1/dt; %抽样频率
df=fs/length(t); %频率分辨率
f=-fs/2:df:fs/2-df; %频率绘制区间
M=2;
fm=1e3;
A=2;
fc=1e4;
input=M*cos(2*pi*fm*t);
INPUT=fft(input); %绘制调制信号频谱
%fft 函数实现从时域到频域的转换(fft—快速傅里叶变换)
carrier=cos(2*pi*fc*t);
envelop_AM=input+(A*M/2)*cos(2*pi*fm*t); %计算包络信号
output=envelop_AM.*carrier;
CARRIER=fft(carrier); %绘制载波频谱
OUTPUT=fft(output); %绘制已调信号频谱
figure;
subplot(3,1,1);plot(t,input);
xlabel('时间/s');ylabel('调制信号');
title('时域基带信号');
subplot(3,1,2);plot(t,envelop_AM);
xlabel('时间/s');ylabel('包络信号');
title('时域包络信号');
subplot(3,1,3);plot(t,output);
xlabel('时间/s');ylabel('调制后信号');
title('时域已调信号');
figure;
subplot(3,1,1); plot(f,abs(fftshift(INPUT))); % fft 变换的结果需要使用 fftshift 修正偏移
xlabel('频率/Hz');ylabel('调制信号振幅');
title('基带信号频谱'); % abs 函数为取修正结果的绝对值
subplot(3,1,2); plot(f,abs(fftshift(CARRIER)));
xlabel('频率/Hz');ylabel('载波振幅');
title('载波频谱');
subplot(3,1,3); plot(f,abs(fftshift(OUTPUT)));
xlabel('频率/Hz');ylabel('已调信号振幅');
title('已调信号频谱');
阅读全文