#define AREA(A,B,C,S,AR) S=10/20(A+B+C);AR=sqrt(S(S-A)(S-B)(S-C))
仔细看,掉了个号,你以为做乘法号是可以省略的??细心点!!
你好,这是我的回答,希望可以帮到你。
1)结果讨论
一,如果对信号进行同样点数N的FFT变换,采样频率fs越高,则可以分析越高频的信号;与此同时,采样频率越低,对于低频信号的频谱分辨率则越好。
二,假设采样点不在正弦信号的波峰、波谷、以及0电压处,频谱则会产生泄露(leakage)。
三,对于同样的采样率fs,提高FFT的点数N,则可提高频谱的分辨率。
四,如果采样频率fs小于2倍信号频率2fs(奈圭斯特定理),则频谱分析结果会出错。
五,对于(二)中泄露现象,可以通过在信号后面补零点解决。
2)程序及注解如下
%清除命令窗口及变量
clc;
clear all;
%输入f、N、T、是否补零(补几个零)
f=input('Input frequency of the signal: f\n');
N=input('Input number of pointsl: N\n');
T=input('Input sampling time: T\n');
flag=input('Add zero too sampling signal or not yes=1 no=0\n');
if(flag)
ZeroNum=input('Input nmber of zeros\n');
else
ZeroNum=0;
end
%生成信号,signal是原信号。signal为采样信号。
fs=1/T;
t=0:000001:T(N+ZeroNum-1);
signal=sin(2pift);
t2=0:T:T(N+ZeroNum-1);
signal2=sin(2pift2);
if (flag)
signal2=[signal2 zeros(1, ZeroNum)];
end
%画出原信号及采样信号。
figure;
subplot(2,1,1);
plot(t,signal);
xlabel('Time(s)');
ylabel('Amplitude(volt)');
title('Singnal');
hold on;
subplot(2,1,1);
stem(t2,signal2,'r');
axis([0 T(N+ZeroNum) -1 1]);
%作FFT变换,计算其幅值,归一化处理,并画出频谱。
Y = fft(signal2,N);
Pyy = Y conj(Y) ;
Pyy=(Pyy/sum(Pyy))2;
f=0:fs/(N-1):fs/2;4
subplot(2,1,2);
bar(f,Pyy(1:N/2));
xlabel('Frequency(Hz)');
ylabel('Amplitude');
title('Frequency compnents of signal');
axis([0 fs/2 0 ceil(max(Pyy))])
grid on;
祝你好运!
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
#include<stdioh>
#include<stringh>
#define MAX 100
void main()
{
int i=0,count=0;
char s[MAX];
printf("请输入字符串,并以ENTER键结束\n");
while((s[i]=getchar())!='\n')
{
i++;
count++;
}
for(i=0;i<=count;i++)
{
if(s[i]>='a' && s[i]<='z')
s[i]=s[i]-32;
else
if(s[i]>='a' && s[i]<='z')
s[i]=s[i]+32;
}
for(i=0;i<=count;i++)
{
printf("%c",s[i]);
}
}
用scanf输入的字符串中不能包含空格,可改用gets()。
#include<stdioh>
#include<stringh>
int main()
{
char s[100];
int i,j,k;
gets(s);
k=strlen(s);
for(i=0;i<k;i++){
if('A'<=s[i]&&s[i]<='Z')
{
s[i]+=5;
if(s[i]>'Z')s[i]-=26;
}
else if('a'<=s[i]&&s[i]<='z')
{
s[i]+=5;
if(s[i]>'z')s[i]-=26;
}
}
puts(s);
getch();
return 0;
}
数组交换的swap函数中
void SWAP(double a, double b) //用于交换数组的元素{
double temp;
temp = a;
a = b;
b = temp;
}
你传进去的是double a
但你定义的是double temp
类型都不一样怎么赋值!!
以上就是关于求教c语言宏的问题全部的内容,包括:求教c语言宏的问题、求用C语言实现FFT变换的程序(见下面)、C语言,输入一串字符,对其中的英文字母进行大小写变换后输出,非英文字母照原样输出,程序怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)