信号处理的C语言程序编写(信号记录文件为TXT文件)

\u600e\u4e48\u5229\u7528\u5916\u90e8.txt\u6587\u4ef6\u540c\u6b65\u8bb0\u5f55c\u8bed\u8a00\u7a0b\u5e8f\u8f93\u51fa\u7684\u6570\u636e\u3002\u6025\u6c42\u3002

#includeint main(){ freopen("output.txt","w",stdout); printf("23333333");}\u4f60\u53ef\u4ee5\u8bd5\u8bd5\u8fd9\u4e2a\uff0c\u770b\u6709\u6ca1\u6709\u751f\u6210\u4e00\u4e2a\u6587\u4ef6\u91cc\u9762\u8f93\u51fa\u4e8623333333
\u540c\u7406\uff0c\u5982\u679c\u4f60\u8981\u7528\u6587\u4ef6\u91cc\u7684\u5185\u5bb9\u6765\u8f93\u5165\u6570\u636e\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528freopen
freopen("input.txt","r",stdin);\u5176\u4e2d\u7b2c\u4e00\u4e2a\u5f15\u53f7\u5185\u7684\u5185\u5bb9\u53ef\u4ee5\u81ea\u5df1\u8f93\u5165\uff0c\u4e3a\u8f93\u5165/\u8f93\u51fa\u7684\u6587\u4ef6\u540d

\u6570\u5b57\u4fe1\u53f7\u5904\u7406c\u8bed\u8a00\u7a0b\u5e8f\u96c6 txt\u5168\u96c6\u5c0f\u8bf4\u9644\u4ef6\u5df2\u4e0a\u4f20\u5230\u767e\u5ea6\u7f51\u76d8\uff0c\u70b9\u51fb\u514d\u8d39\u4e0b\u8f7d\uff1a
\u514d\u8d39\u7684\uff0c\u76f4\u63a5\u4e0b\u8f7d\u5c31\u884c

输出所有的波峰值及相邻两波峰之间的距离,如果只是这个要求不用从时序到频谱的变换吧.如果你非要做这个变换,可以参考FFT快速傅里叶变换.
我在这里说一下得到波峰值及相邻两峰之间距离的算法吧.
对于时序连续波谱,从文件读入内存后,保存在x[]数组中.
计算delta=x[i+1]-x[i],当delta从正值变成负值或零时,或者从负值变成正值或零时,记录对应的x[i].该值就是波峰.
相邻波峰的距离,只要用x[i+2]-x[i]即可.

说实话信号处理最好还是matlab之类的软件比较好

labview也可以

  • C璇█淇″彿澶勭悊绋嬪簭
    绛旓細include <signal.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h> void my_func(int sign_no){ if(sign_no==SIGINT) printf("I have get SIGINT\n"); else if(sign_no==SIGTERM) printf("I have get SIGQUIT\n");}int main(){ printf("Waiting for ...
  • 淇″彿澶勭悊鐨凜璇█绋嬪簭缂栧啓(淇″彿璁板綍鏂囦欢涓篢XT鏂囦欢)
    绛旓細鐩搁偦娉㈠嘲鐨勮窛绂,鍙鐢▁[i+2]-x[i]鍗冲彲.
  • C璇█濡備綍澶勭悊RGB淇″彿
    绛旓細include <stdio.h> //璁$畻鏍峰搧娣卞害 int sampleDepth(int x){ return (x-1)/2;} int main(){ int i=0;printf("鑾峰彇鍒扮殑鏍峰搧娣卞害鏄:");scanf("%d",&i);printf("棰滆壊寮哄害%d\r\n",sampleDepth(i));return 0;}
  • linux涓c璇█鏈夊叧淇″彿鐨勭▼搴
    绛旓細绠鍗澶勭悊浜嗕竴涓嬶紝甯屾湜瀵逛綘鏈夊府鍔 define err_sys( str ) printf("error:%s\n" , str )static void sig_int(int signo){ struct tms timebuf;int wallclock=times(&timebuf);fprintf(stderr,"clock ticks since system startup are %d,\n",wallclock);} static void sig_term(int signo){...
  • 濡備綍缂栧啓C璇█鐨勪腑鏂嚱鏁?
    绛旓細棣栧厛锛屼綘闇瑕佸畾涔変竴涓腑鏂鐞嗗嚱鏁扮殑鍘熷瀷锛氬湪杩欎釜渚嬪瓙涓紝鎴戜滑娉ㄥ唽浜嗕竴涓淇″彿澶勭悊鍑芥暟`handle_interrupt`鏉ュ鐞哷SIG`锛圕trl+C锛変腑鏂傚綋鐢ㄦ埛鎸変笅Ctrl+C鏃讹紝绋嬪簭浼氭崟鑾疯繖涓俊鍙峰苟璋冪敤`handle_interrupt`鍑芥暟銆傝娉ㄦ剰锛屼腑鏂鐞嗗湪涓嶅悓鐨勬搷浣滅郴缁熷拰纭欢骞冲彴涓婁細鏈夊緢澶х殑涓嶅悓缂栧啓鍏蜂綋鐨勪腑鏂澶勭悊绋嬪簭鏃讹紝浣犻渶瑕...
  • 姹傜敤C璇█瀹炵幇FFT鍙樻崲鐨勭▼搴(瑙佷笅闈)
    绛旓細涓锛屽鏋滃淇″彿杩涜鍚屾牱鐐规暟N鐨凢FT鍙樻崲锛岄噰鏍烽鐜噁s瓒婇珮锛屽垯鍙互鍒嗘瀽瓒婇珮棰戠殑淇″彿锛涗笌姝ゅ悓鏃讹紝閲囨牱棰戠巼瓒婁綆锛屽浜庝綆棰戜俊鍙风殑棰戣氨鍒嗚鲸鐜囧垯瓒婂ソ銆備簩锛屽亣璁鹃噰鏍风偣涓嶅湪姝e鸡淇″彿鐨勬尝宄般佹尝璋枫佷互鍙0鐢靛帇澶勶紝棰戣氨鍒欎細浜х敓娉勯湶锛坙eakage锛夈備笁锛屽浜庡悓鏍风殑閲囨牱鐜噁s锛屾彁楂楩FT鐨勭偣鏁癗锛屽垯鍙彁楂橀璋辩殑鍒嗚鲸鐜囥傚洓锛...
  • 濡備綍鐢C璇█瀹炵幇鏁板瓧淇″彿澶勭悊绠楁硶?
    绛旓細涓嬮潰鐨勮祫鏂欏彲鐪嬩竴涓 C璇█瀹炵幇鏁板瓧淇″彿澶勭悊绠楁硶 http://wenku.baidu.com/view/eb6e24c52cc58bd63186bd02.html 鏁板瓧淇″彿澶勭悊C璇█绋嬪簭闆嗐媠cilab锛宱ctave鏄疌璇█瀹炵幇鐨勫紑婧愮殑绫籱atlab杞欢锛岄噷闈㈡湁璁稿c璇█瀹炵幇鐨勬暟瀛淇″彿澶勭悊鐨绠楁硶锛屽彲浠ョ爺绌朵竴涓嬨
  • C璇█涓(void)signal(SIGALRM, alarmhandle);鏄粈涔堟剰鎬
    绛旓細signal(SIGALRM, alarmhandle); 琛ㄧず缁欏綋鍓嶈繘绋嬫敞鍐孲IGALRM淇″彿澶勭悊浠g爜锛屽鏋滄敹鍒癝IGALRM淇″彿锛屽氨浼氬幓鎵цalarmhandle鍑芥暟 man signal...SYNOPSIS #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);DESCRIPTION The signal() ...
  • dspc璇█鏄粈涔堟剰鎬?
    绛旓細DSPC璇█鎸囩殑鏄暟瀛淇″彿澶勭悊鎺у埗璇█锛屾槸鐢ㄤ簬鎺у埗鏁板瓧淇″彿澶勭悊鍣紙DSP锛夌殑楂樼骇璇█銆傚畠鏄竴绉嶅熀浜嶤璇█鐨勬墿灞曠増鏈紝鍙互涓篋SP鍣ㄤ欢缂栧啓鎺у埗绯荤粺绋嬪簭銆侱SPC璇█鍦ㄥ悇绉嶆暟瀛椾俊鍙峰鐞嗗簲鐢ㄤ腑閮介潪甯搁噸瑕侊紝鍖呮嫭闊抽銆佽棰戙侀浄杈惧拰鍥惧儚澶勭悊銆侱SPC璇█涓嶤璇█鏈夊緢澶氱浉浼间箣澶勶紝濡傜粨鏋勫拰璇硶銆備絾瀹冧篃鍏锋湁鑷繁鐨勭嫭鐗圭壒鐐...
  • 鍗曠墖鏈C璇█鐗堟寮︽尝淇″彿鍙戠敓鍣ㄦ庝箞鍋?
    绛旓細if(cho==1|cho==3) //閿娇娉256娆′腑鏂竴鍛ㄦ湡锛岀壒娈澶勭悊涓嬨傚惁鍒欎粬鐨勯鐜囨槸100(+\-)n*2Hz.{ temp=0xffff-3906/FREQ; //鏂规尝锛屼笁瑙掓尝榛樿涓100hz,鍒囨崲鍚庨鐜囦篃涓50HZ 65336-10^6/(256*FREQ)TIME0_H=temp/256;TIME0_L=temp%256;} else if(cho==0|cho==3){ //姝e鸡娉 涓夎娉㈤粯璁...
  • 扩展阅读:c++语言入门自学 ... c语言零基础入门到精通 ... 自学哪种语言最好学 ... c#面试题 ... 十大编程语言排名 ... 自学c语言能找到工作吗 ... c十十编程教学视频 ... c#用什么软件编写 ... 10个常用的编程语言 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网