main(){int x=5 y=5;pnntf("%d %dn",.x--,--y);}

main(){int x=5 y=5;pnntf("%d %dn",.x--,--y);},第1张

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去噪的程序吗有已录的纯净语音 要简单的有注释就更好了 , 万分感谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10086928.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存