
x--表示运行后再自减,--y表示自减后再参与运行
所以是5,4
打印菱形:
main()
{
int i,j,k;
for(i=0;i<=3;i++)//这个for打印上半部分
{
for(j=0;j<=2-i;j++)
printf(" ");//打印空格,把光标往右移动
for(k=0;k<=2i;k++)
printf("");//移到指定位置后打印
printf("\n");//转到下一行
}
for(i=0;i<=2;i++) //这个for打印下半部分
{
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2i;k++)
printf("");
printf("\n");
}
}
看看是不是这个:
part1: >
winsize=256;%窗长
n=01;%噪声水平
a=2;
b=6;
[speech,fs,nbits]=wavread('E:\matlab\louyinwav');%读入wav文件
size=length(speech);%语音长度
numofwin=floor(size/winsize);%窗数
%定义汉明窗
ham=hamming(winsize)';
hamwin=zeros(1,size);
enhanced=zeros(1,size);
improved=zeros(1,size);
%生成噪声信号
noise=nrandn(1,size);
y=speech'+noise;
%噪声处理
noisy=nrandn(1,winsize);
N=fft(noisy);
npow=abs(N);
for q=1:2numofwin-1
yframe=y(1+(q-1)winsize/2:winsize+(q-1)winsize/2);%分帧
hamwin(1+(q-1)winsize/2:winsize+(q-1)winsize/2)=hamwin(1+(q-1)winsize/2:winsize+(q-1)winsize/2)+ham;%
%加噪信号FFT
y1=fft(yframeham);
ypow=abs(y1);%加噪信号幅度
yangle=angle(y1);%相位
%计算功率谱密度
Py=ypow^2;
Pn=npow^2;
Pyy=ypow^a;
Pnn=npow^a;
%基本谱减
for i=1:winsize
if Py(i)-Pn(i)>0
Ps(i)=Py(i)-Pn(i);
else
Ps(i)=0;
end
end
s=sqrt(Ps)exp(jyangle);
for i=1:winsize
if Pyy(i)-bPnn(i)>0
Pss(i)=Pyy(i)-bPnn(i);
else
Pss(i)=0;
end
end
ss=Pss^(1/a)exp(jyangle);
%去噪语音IFFT
enhanced(1+(q-1)winsize/2:winsize+(q-1)winsize/2)=enhanced(1+(q-1)winsize/2:winsize+(q-1)winsize/2)+real(ifft(s));
improved(1+(q-1)winsize/2:winsize+(q-1)winsize/2)=improved(1+(q-1)winsize/2:winsize+(q-1)winsize/2)+real(ifft(ss));
end
%去除汉明窗引起的增益
for i=1:size
if hamwin(i)==0
enhanced(i)=0;
improved(i)=0;
else
enhanced(i)=enhanced(i)/hamwin(i);
improved(i)=improved(i)/hamwin(i);
end
end
SNR1=10log10(var(speech')/var(noisy));%加噪语音信噪比
SNR2=10log10(var(speech')/var(enhanced-speech'));%增强语音信噪比
SNR3=10log10(var(speech')/var(improved-speech'));
figure(1);plot(speech');%原始语音波形
title(['Original Voice(n=',num2str(n),')']);
figure(2);plot(y);
title(['Noise Added(SNR=',num2str(SNR1),'dB)']);
figure(3);plot(enhanced);
title(['Enhanced Voice(SNR=',num2str(SNR2),'dB)']);
figure(4);plot(improved);
title(['Improved Voice(SNR=',num2str(SNR3),'dB)']);
% 这段程序得到n=10时,对应的Pn
clear;
clc;
n=10
sum_right=0; %投递2000次中,至少有一封信投递正确的次数,初始值为零
for ii=1:2000
a1=1:n; %数组a1中依次存放的是n个信箱号,从1到n
[a,a2]=sort(rand(1,n));
%用随机数函数rand产生一个随机序列,然后从小到大排序,大小顺序号存放到数组a2中
num_right=sum(a1==a2);
%依次比较数组a1和a2中的每个元素,如果相同则为1,不同则为0,num_right中计算1的个数,即为投递正确的个数
if num_right>0 %如果num_right>0则说明至少有一封信投递正确了
sum_right=sum_right+1;
end
end
Pn=sum_right/2000 %得到Pn
% 这段程序得到n从2到50时,求出每个n对应的Pn,并绘制散点图
nn=2:50;
Pnn=zeros(1,length(nn));
for jj=1:length(nn)
n=nn(jj);
sum_right=0;
for ii=1:2000
a1=1:n;
[a,a2]=sort(rand(1,n));
num_right=sum(a1==a2);
if num_right>0
sum_right=sum_right+1;
end
end
Pnn(jj)=sum_right/2000;
end
figure
plot(nn,Pnn,'')%绘制散点图
第一个问题的答案如下,第二个问题还是没有看明白你的要求,你最好把公式变成个插入进来,或者你看看能不能根据第一个问题的程序,自己尝试解决一下第二个问题,积分可以用求和来近似表示。
% 这段程序得到n=10时,对应的Pn
clear;
clc;
n=10
sum_right=0; %投递2000次中,至少有一封信投递正确的次数,初始值为零
for ii=1:2000
a1=1:n; %数组a1中依次存放的是n个信箱号,从1到n
[a,a2]=sort(rand(1,n));
%用随机数函数rand产生一个随机序列,然后从小到大排序,大小顺序号存放到数组a2中
num_right=sum(a1==a2);
%依次比较数组a1和a2中的每个元素,如果相同则为1,不同则为0,num_right中计算1的个数,即为投递正确的个数
if num_right>0 %如果num_right>0则说明至少有一封信投递正确了
sum_right=sum_right+1;
end
end
Pn=sum_right/2000 %得到Pn
% 这段程序得到n从2到50时,求出每个n对应的Pn,并绘制散点图
nn=2:50;
Pnn=zeros(1,length(nn));
for jj=1:length(nn)
n=nn(jj);
sum_right=0;
for ii=1:2000
a1=1:n;
[a,a2]=sort(rand(1,n));
num_right=sum(a1==a2);
if num_right>0
sum_right=sum_right+1;
end
end
Pnn(jj)=sum_right/2000;
end
figure
plot(nn,Pnn,'')%绘制散点图
这是我得到的。由于是随机数,每次运行的结果可能不一样。追问第二个问题就是e的(X的平方)次方从0到1的积分以及sinx除以x的从0到1的积分,模拟4万次。这个我从没学过matlab,所以才求帮助啊,请这位大神帮帮忙~谢谢 回答要是这样的话,第二题就比较简单了。
% 下面这段程序求解e的(x^2)次方在(0,1)的积分
clear;
clc;
sum_1=0;
for i=1:40000
x1=rand; %产生一个随机数
sum_1=sum_1+exp(x1^2);
end
result_1=sum_1/40000
%result_1即为e的(x^2)次方积分的结果,用40000个随机数的函数值的平均数来近似表示
% 下面这段程序求解sin(x)/x在(0,1)的积分
sum_2=0;
for i=1:40000
x2=rand;%产生一个随机数
sum_2=sum_2+sin(x2)/x2;
end
result_2=sum_2/40000
%result_2即为sin(x)/x积分的结果,用40000个随机数的函数值的平均数来近似表示
以上就是关于main(){int x=5 y=5;pnntf("%d %d\n",.x--,--y);}全部的内容,包括:main(){int x=5 y=5;pnntf("%d %d\n",.x--,--y);}、求百度网盘分享windows程序设计第五版清华大学方敏张胜等译的、能给我一个谱减法matlab去噪的程序吗有已录的纯净语音 要简单的有注释就更好了 , 万分感谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)