FFT补零相关 1.转自http://www.ilovematlab.cn/viewthread.php?tid=36349&sid=lqshA1补零后的FFT和补零前的FFT,两者会有较大的不同,但两频谱的包络还是一致的。设补零前数据长N,补零后数据长M(补了M-N个零值),则补零前的FFT有N条谱线,分别代表的频率点是(0,1,...,N-1)*df1,df1=fs/N;补零前的FFT有M条谱线,分别
MIPS 体系结构汇编语言快速入门(翻译) MIPS 体系结构和汇编语言快速入门(翻译)译者:Sonic Fu, Northeastern University, Boston, USA译者按:学习笔记,抛砖引玉!网上有一个版本,不全,这个作为补充。英文原版: http://logos.cs.uic.edu/366/notes/mips quick tutorial.htm#IOSystemCalls本文
ACM算法入门 OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法
USRP2 LTE Transceiver设计 1. 代码架构top_levelrunTransceiver.cpp初始化设备对象,radio接口以及transceiver对象,启动trx相关线程 transceiverTransceiver.h/cpp TRX层,主要实现收发控制功能和对上层协议栈的接口,共分为四个线程:mReceiveFIFOServiceLoopThread负责驱动USRP接收,并将数据存入
USRP变速率采样原理及实现 1. 变速率采样5M带宽的LTE系统中,采样率为512*15k=7.68MHz,而USRP2在不改变FPGA代码的情况下仅支持100M的整数倍分频的采样率,最接近7.68M的采样率为6.25M。所以在空口获得的数据采样率为6.25M,而LTE系统内部采样率为7.68M,需要进行插值和抽取实现速率转换。(补充说明一点,由于LTE过采样的特点,采样率6.25M仍然可以完整保留信号特性,实际上,
SSE指令集入门 Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有关SSE技术的主题[1]有可能会使不熟悉使用SSE汇编指令编程的初学者感到困惑,但是在阅读MSDN有关
Linux驱动学习(四)——高级字符设备驱动程序 LDD第二章到第六章的综合复习。用循环缓冲区实现一个FIFO,支持多个reader和writer,利用信号量在竞态下保护数据区域,并且在无数据的时候阻塞读,数据满的时候阻塞写,可以通过ioctl返回FIFO状态。需要的技术:1、信号量:竞争与锁的机制。2、等待队列:进程的休眠与唤醒。用两种方式实现读写阻塞。3、poll:返回文件可读或者可写的状态,为select调用。4、i
linux下调试方法记录 1、segment faultsegment fault是几乎多有C程序员都会碰到的问题,多为内存问题,因为glibc库中基本所有的函数都默认形参指针是非空的,这样以下原因就可能导致段错误:(1)引用一个包含非法值的指针(当然包括空指针)。(2)未得到正确的权限的时候进行访问,例如往只读的内存地址写数据。(3)内存越界(数组越界,变量类型不一致等)调试segment fault
DSP问题笔记 在学习DSP的过程中遇到了一些问题,包括面试与讨论中,记录在这篇博客中。1、DSP的哈佛结构特点,与常规的冯诺依曼结构区别。 2、给定一个信号为两个幅值为A的正弦信号的叠加(1000hz和1050hz),给定8khz的采样率,一个周期有多少个采样点?思路:这个问题的关键在于理解频率分辨率和DFT的实质。对于有限长离散点做DFT,相当于时域加窗(乘以一个矩形函数),频域上卷积sin
Linux驱动学习(二)——字符设备驱动程序入门 . linux下,在应用程序看来,对设备的操作其实就是对文件的操作,利用open,read,write,close等函数进行控制和IO。对于一个字符设备驱动模块,有几个关键结构体:1、struct file_operations:在设备编号和驱动程序操作之间建立连接2、struct file: file结构代表着一个打开的文件,由内核在open时创建,并传递给在该文件上操作的所有函数(如r
Linux驱动学习(一)——简单的hello模块 大概看了一遍LDD,从今天开始动手实践,下面给出linux内核模块开发入门的代码,helloworld。hello.c #include #include MODULE_LICENSE("Dual BSD/GPL");static int __init hello_init(){ printk(KERN_ALERT "Hello, kernel world"
GSM手机经典接入流程 打电话的时候,先由MS通过RACH发起入网申请,网络再通过AGCH对MS的入网申请作出响应,分配一条SDCCH(这一过程是立即支配程序,用于位置更新或收发短消息),SDCCH也可以叫专用呼叫信道,网络通过SDCCH分配TCH。如果用户要打电话就需要进一步分配一条TCH(这一过程是支配程序,传送话音等)。接电话和打电话差不多,接的话网络多了一个寻呼的过程。1. The MS powers up
Openbts for opra 底层驱动移植 最近接触了一个软件无线电的项目,在新的硬件平台上调试openbts,就是那个开源的GSM基站。openbts的架构很清晰,transceiver层负责提供radio部分的接口,实现数据的实时收发,然后通过socket与高层协议栈通信,所以我的大部分工作都是在transceiver层完成的。openbts一直都是以USRP/USRP2作为底层硬件单元,这次我要用opra的板子做底层单元,原想
Linux驱动程序学习步骤经典收藏 先记录一下,稍后会一步步实践。 了解linux驱动程序技巧学习的方法很重要,学习linux操作系统时,你可能会遇到关于驱动方面的问题,这里将介绍学习linux驱动程序的方法,在这里拿出来和大家分享一下。1.学会写简单的makefile2.编一应用程序,可以用makefile跑起来3.学会写linux驱动程序的makefile4.写一简单char驱动,makefile编译通过
ubuntu内核编译及RTAI的安装 准备工作apt-get install qt3-apps-dev build-essential kernel-package vimapt-get install libncurses5-dev (meke menuconfig要调用的)Step1 下载源码并解压到/usr/src目录下Get the kernel source (version 2.6.32-21.32)
基站诊断工具——DSP开发小结 本篇日志记录了我在爱立信实习中参与的一个项目:基站监测与调试工具的开发。WoD工具分为两部分,一部分是在DSP侧,实现在基站freescale的板子上,提供基站端的流量信息/数据信息/signal状态/内存信息等;另一部分是PC侧,负责监视。控制基站与显示,记录数据结果。两部分之间通过socket通信,在自己设计的数据包传输协议基础上交换信息。(在外场测试中,没有PC侧的应用,DSP侧应将各种
Python学习(四)——Python单元测试 pyunit框架'''Created on Aug 10, 2011@author: wensi'''import unittestclass TestClass1(unittest.TestCase): def testCase1(self):
Python学习(三)——正则表达式模块 re.matchmatch从字符串的开头进行匹配(注意是开头!!!)text = "wensishuai is a handsome boy, he is cool, clever, and so on..."m = re.match(r'(w\w+)\s', te
Python学习(二)——常用功能 1、获取当前时间:import timeTIMEFORMAT = '%Y%m%d%H%M%S'self.curtimestr = time.strftime( TIMEFORMAT, time.localtime(time.time()))
Python学习(一)——学习资源记录 下面是常用的入门和查找的资源:官方参考文档:http://docs.python.org/release/2.6.7/index.html (学习tutorial和standard library常用函数)google的Python class:http://co