求教关于PSK的C语言编程??

求教关于PSK的C语言编程??,第1张

关闭输出窗口

清楚命令区

没有source的代码侍胡不知道这句什么意思

载波频率1MHz

bit速率   1MHz(比较这两个速率,应该每一个bit上调制了一个载波

设定噪声系数孝谈棚

产生数据bit

将数据bit上调制载波

在发射数据巧则上加入高斯噪声

将接收到的信号解调

fp = fopen("BPSK_snrber.txt", "a+")是一个赋液盯值语句,也就是打开文件BPSK_snrber.txt,也就是说fp指向了这个文件

(fp = fopen("BPSK_snrber.txt", "a+"樱空)) == NULL则是一个表达式,具体意思等价于

先执行fp = fopen("BPSK_snrber.txt", "a+");再判断

fp == NULL

连起来if ((fp = fopen("BPSK_snrber.txt", "a+")) == NULL)便是,

打开文件BPSK_snrber.txt并用指针fp指向它并判断指针fp是否为空,即文件脊埋瞎是否成功打开

clc

clear

fc=4800fs=12000fb=2400

%要调制的数字信号

a=randint(1,12,2)%随机产生12个“0”,“1”

s=zeros(1,60)

for i=1:12

for j=1:5

if(a(i)==0)

s(j+(i-1)*5)=0

else

s(j+(i-1)*5)=1

end

end

end

plot(s)xlabel('基带信号')

figure

pwelch(s)%功率谱

figure

%波形成形滤波器(平方根升余弦滚降)

h=firrcos(14,1200,1200,4800,'sqrt')

figure

stem(h)xlabel('成形滤野粗兄波器的单位冲击响应')

[H,W]=freqz(h,1)

H=abs(H)

figure

plot(H)xlabel('成形滤波器的频率响应')

s=fftfilt(h,s)

figure

plot(s)xlabel('通过成形滤波器后的基带信号')

figure

pwelch(s)%经波形成形滤波器后的功率谱

%已调信号

e=dmod(a,4800,2400,12000,'psk',2)%调凳埋制

figure

plot(e)xlabel('已调信号')

enoise=e+randn(1,60)%enoise=e+.1*randn(1,60)不同功率的高斯白噪声

aa=ddemod(enoise,4800,2400,12000,'psk',2)%解调

figure

stem(aa)xlabel('解调后的数字信号')%解调后的数字信号

p=symerr(a,aa)/12 %误码率

%误码率曲线

figure

r=-6:3:12

rr=10.^(r/10)

pe1=1/2*exp(-rr)%相干解调的误码率曲线颂袭

hold on

plot(r,pe1,'r')grid on

pe2=(1-1/2*erfc(sqrt(rr))).*erfc(sqrt(rr))%差分相干解调的误码率曲线

plot(r,pe2,'b')xlabel('bpsk,dpsk误码率曲线')

set(gca,'XTick',-6:3:18)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12244396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存