QT EXTENDED4.4.3编译

QT EXTENDED4.4.3编译
QT EXTENDED4.4.3编译

移植qtopia4手机版(qt-extended4.4.3)到mini2440的详细过程。。。。。。。。。

成功移植qtopia4.4.3手机版到mini2440上

首先说明:qtopia4是不能在源码目录中编译安装的,可以用configure—help查看。X86版和ARM版能不能使用同一个源码包(不用解压源码包qt-extended-opensource-src-4.4.3.tar.gz分别更名命*-src-x86和*-src-arm,只使用一个*-src即可?)这个没试过,应该是可以的,你们可以试试。我使用的分别解压到不同目录分别更名命*-src和*-src-arm

(1)准备源码:

qt-extended-opensource-src-4.4.3.tar.gz

tslib-1.4.1.tar.bz2

(2)开发环境:

Fedora9—linux-2.6.25

arm-linux-gcc-4.3.2.tgz

(3)先安装x86的qtopia手机版运行看看效果先:

1.)解压源码qt-extended-opensource-src-4.4.3.tar.gz到qtopia4目录中

2)创建目录build和target

[root@abilly qtopia4]#ls

build target

qt-extended-4.4.3-src

3)设置环境变量

[root@abilly qtopia4]#export QPEDIR=/home/abilly/qtopia4/build

[root@abilly qtopia4]#

export QTOPIA_DEPOT_PATH=/home/abilly/qtopia4/qt-extended-4.4.3-src

[root@abilly qtopia4]#echo$QPEDIR

/home/abilly/qtopia4/build

[root@abilly qtopia4]#echo$QTOPIA_DEPOT_PATH

/home/abilly/qtopia4/qt-extended-4.4.3-src

4)配置与编译,安装与运行

配置前可以到qt-extended-4.4.3下运行/configure–help看看选项说明

[root@abilly qt-extended-4.4.3]#./configure--help

。。。。。。。

然后配置如下:进入build目录

[root@abilly build]#../qt-extended-4.4.3-src/configure-build-qt-image /home/abilly/qtopia4/target-prefix/home/abilly/qtopia4/target

……(约2个半小时后)

Qt Extended has been configured.You can build Qt Extended by running bin/qbuild. If you run bin/qbuild image,this will setup a runnable image in

/home/abilly/qtopia4/target.

As configured,Qt Extended MUST be run from/home/abilly/qtopia4/target.If

this is not where you intend to run Qt Extended from you should set the

location by running configure-prefix/opt/Qtopia.

You have new mail in/var/spool/mail/root

配置成功

编译:

[root@abilly build]#bin/qbuild

……(约5个小时后)

Qt Extended has been built.

You must now install Qt Extended by running'bin/qbuild image'.

This will put the files required to run Qt Extended into the image:

/home/abilly/qtopia4/target

Before you can use the SDK you must finalize it by running'bin/qbuild sdk'. This will put the required files into the SDK:

/home/abilly/qtopia4/build/sdk

安装:

[root@abilly build]#bin/qbuild image

。。。。。(约30分钟后)

Qt Extended has been installed.

The files required to run Qt Extended are in the image:

/home/abilly/qtopia4/target

Please note that Qt Extended cannot be moved.It must be run from the image.

编译开发包,怎么使用这个开发自己的应用程序有待研究。。。

[root@abilly build]#bin/qbuild sdk

(10多分钟即可)

Finalizing the SDK

/home/abilly/qtopia4/qt-extended-4.4.3-src/src/build/bin/sdkcache

/home/abilly/qtopia4/build/sdk

WARNING:Your perl has a bug with output and UTF-8

WARNING:sdkcache will attempt to work around the bug by changing your LANG variable from zh_CN.UTF-8to zh_CN.

The SDK has been finalized.

It can now be deployed to another computer.

Note that you should run configure before building again.

运行:

[root@abilly build]#bin/runqtopia

在运行:结果如图:?

(4)编译安装qtopia4到mini2440

1.)解压源码qt-extended-opensource-src-4.4.3.tar.gz到qtopia4_arm目录中

2)创建目录build_arm和target-arm

[root@abilly qtopia4_arm]#ls

Build_arm target-arm

qt-extended-4.4.3-src-arm

3)设置环境变量

[root@abilly qtopia4_arm]#export QPEDIR=/home/abilly/qtopia4_arm/build_arm [root@abilly qtopia4_arm]#

export QTOPIA_DEPOT_PATH=/home/abilly/qtopia4_arm/qt-extended-4.4.3-src-arm [root@abilly qtopia4_arm]#echo$QPEDIR

/home/abilly/qtopia4_arm/build_arm

[root@abilly qtopia4_arm]#echo$QTOPIA_DEPOT_PATH

/home/abilly/qtopia4_arm/qt-extended-4.4.3-src-arm

4)编译安装tslib

5)配置与编译,安装

配置:

进入build_arm目录:

[root@abilly build-arm]#../qt-extended-4.4.3-src-arm/configure-verbose-release -image/home/abilly/qtopia4_arm/target-arm-prefix /home/abilly/qtopia4_arm/target-arm-no-pkg-config??-no-dbus-xplatform linux-arm-g++-arch arm-displaysizes240x320-build-qt-qtopia-sqlite-v4l2 -remove-module modem??-remove-module Bluetooth-remove-module drm-remove-module infrared-extra-qt-embedded-config"-xplatform qws/linux-arm-g++-embedded arm -qconfig qpe-shared-little-endian-webkit-qt-kbd-usb-qt-libpng-qt-libjpeg -qt-gif-depths4,8,16,32-qt-mouse-tslib-I/home/abilly/mytslib/include -L/home/abilly/mytslib/lib"

。。。。。。。(2个半小时后)

Qt Extended has been configured.You can build Qt Extended by running bin/qbuild.

If you run bin/qbuild image,this will setup a runnable image in

/home/abilly/qtopia4_arm/target-arm.

As configured,Qt Extended MUST be run from

/home/abilly/qtopia4_arm/target-arm.If this is not where you intend to run Qt Extended from you should set the location by running configure-prefix

/opt/Qtopia.

编译:

[root@abilly build-arm]#bin/qbuild

(5个小时后:)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Qt Extended has been built.

You must now install Qt Extended by running'bin/qbuild image'.

This will put the files required to run Qt Extended into the image:

/home/abilly/qtopia4_arm/target-arm

Before you can use the SDK you must finalize it by running'bin/qbuild sdk'. This will put the required files into the SDK:

/home/abilly/qtopia4_arm/build-arm/sdk

安装:

[root@abilly build-arm]#bin/qbuild image

Removing/home/abilly/qtopia4_arm/target-arm

(半个小时后)

。。。。。。。。。。。。。。。。。。。。。。

Qt Extended has been installed.

The files required to run Qt Extended are in the image:

/home/abilly/qtopia4_arm/target-arm

Please note that Qt Extended cannot be moved.It must be run from the image.

[root@abilly build-arm]#

[root@abilly build-arm]#bin/qbuild sdk

Finalizing the SDK

/home/abilly/qtopia4_arm/qt-extended-4.4.3-src-arm/src/build/bin/sdkcache

/home/abilly/qtopia4_arm/build-arm/sdk

WARNING:Your perl has a bug with output and UTF-8

WARNING:sdkcache will attempt to work around the bug by changing your LANG variable from zh_CN.UTF-8to zh_CN.

The SDK has been finalized.

It can now be deployed to another computer.

Note that you should run configure before building again.

6)移植到mini2440下,NFS挂载

在root_qtopia文件系统的home目录下录建立:

/home/abilly/qtopia4_arm

(这是因为在配置的时候使用了-prefix/home/abilly/qtopia4_arm/target-arm目录必须一致)

拷贝主机的/home/abilly/qtopia4_arm/target-arm到

开发板的root_qtopia下的/home/abilly/qtopia4_arm

设置qtopia4运行的环境变量,脚本/bin/qtopia4内容如下:

#!/bin/sh

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_CONFFILE=/usr/local/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/local/lib/ts

export TSLIB_CALIBFILE=/etc/pointercal

export QPEDIR=/home/abilly/qtopia4_arm/target-arm

export PATH=$QPEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QPEDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

export QWS_SIZE=240x320

export HOME=/home/abilly/qtopia4_arm

export QWS_DISPLAY="LinuxFB:/dev/fb0"

export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"

export QWS_KEYBOARD=TTY:/dev/tty1

export QWS_MOUSE_PROTO="TSLIB:/dev/input/event0"

export QT_PLUGIN_PATH=$QPEDIR/plugins/

export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/

修改rcS运行qtopia4的qpe

#/bin/qtopia&

#echo"">/dev/tty1

#echo"Starting Qtopia,please waiting...">/dev/tty1

source/bin/qtopia4

if[-f/etc/pointercal];then

$QPEDIR/bin/qpe-qws&

else

/usr/loca/bin/ts_calibrate

$QPEDIR/bin/qpe-qws&

FiNfs文件系统的挂载略。

启动开发板,结果如图:

对于字体大小,图标大小,应用程序的编译与添加有待研究。

Qt-extended-4.4.3移植

环境:VMware+Fedora14

嵌入式平台:TMS320DM365(arm926ejs)

交叉编译工具链:arm_v5t_le-gcc

源码包:qt-extended-opensource-src-4.4.3.tar.gz tslib-1.4.tar.gz

一、搭建TI的编译环境

省略。

二、移植tslib-1.4至DM365

Tslib的移植过程在文档《QT4在DM365平台的移植笔记》上面做了详细介绍,这儿就不在重复了。

三、编译及运行pc版本的Qt-extended-4.4.3

1、创建工作目录:

#cd/usr/local/Trolltech

#mkdir Qt-extended

#cd Qt-extended

#mkdir build-pc

#mkdir build-arm

2、准备源码:将qt-extended-opensource-src-4.4.3.tar.gz解压至/usr/local/Trolltech/Qt-extended目录下。

3、编译:

#cd/usr/local/Trolltech/Qt-extended/build-pc

#export LC_CTYPE=”en_US”

#export LANG=”en_US”

#export LANGUAGE=”en_US”

修改/usr/local/Trolltech/Qt-extended/qt-extended-4.4.3/src/libraries/qtopia下的qphoneprofile.cpp中:

QPhoneProfile::Schedule::Schedule&QPhoneProfile::Schedule::operator=(const Schedule&other)

为:

QPhoneProfile::Schedule&QPhoneProfile::Schedule::operator=(const Schedule &other)

#echo yes|../qt-extended-4.4.3/configure-ui-type home-release-clean -sound-system alsa-build-qt-no-sxe-no-ssl-no-v4l2-no-vpn-no-phonon-no-libamr -mediaengines cruxus-remove-mediaengine gstreamer,helix-pictureflow -remove-module bluetooth,drm-no-dbus-no-dbusipc-add-displaysize480x272 -extra-qt-embedded-config"-qt-freetype-no-webkit-no-dbus-qt-gfx-transformed -qt-gfx-linuxfb"-extra-qt-config"-no-webkit"

#bin/qbuild

#bin/qbuild image

#bin/qbuild sdk

4、运行PC版的Qt-extended:

Qt-extended-4.4.3自带了运行脚本,所以:

#cd/usr/local/Trolltech/Qt-extended/build-pc

#bin/runqtopia

四、编译及运行arm版Qt-extended-4.4.3

1、编译:

#cd/usr/local/Trolltech/Qt-extended/build-arm

#export LC_CTYPE=”en_US”

#export LANG=”en_US”

#export LANGUAGE=”en_US”

#echo yes|../qt-extended-4.4.3/configure-ui-type home–xplatform linux-arm-g++-arch arm–prefix/usr/local/Trolltech/qtopia4-release-clean -sound-system oss-build-qt-no-sxe-no-ssl-no-v4l2-no-vpn-no-phonon-no-libamr -mediaengines cruxus-remove-mediaengine gstreamer,helix-pictureflow -remove-module bluetooth,drm-no-dbus-no-dbusipc-add-displaysize480x272 -extra-qt-embedded-config"-embedded arm–xplatform qws/linux-arm-g++-no-cups –nomake examples–nomake demos–qt-libjpeg–qt-libmng–qt-libpng-no-dbus –depths16,32–no-gfx-qvfb–no-gfx-vnc–no-gfx-multiscreen–qt-kbd-tty–no-kbd-usb–no-kbd-s15000–no-kbd-yopy–no-kbd-vr41xx–no-kbd-qvfb–no-webkit–no-openssl–no-phonon–no-phonon-backend–no-nas-sound–no-exceptions-svg-qt-gfx-transformed-qt-gfx-linuxfb"-extra-qt-config "-no-webkit"

#bin/qbuild

#bin/qbuild image

出现Qt Extended has been installed.则编译安装成功。编译生成的文件在/usr/local/Trolltech/build-arm/image目录下。

2、在嵌入式平台(DM365)上部署qt-extended:将/usr/local/Trolltech/Qt-extended/build-arm/image/下所有文件复制到你的嵌入式文件系统的/usr/local/Trolltech/qtopia4目录下。修改etc/profile文件:

export QPEDIR=/usr/local/Trolltech/qtopia4

#For tslib

export TSDIR=/usr/local/Trolltech/tslib

export LD_LIBRARY_PATH=$TSDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH

export TSLIB_ROOT=$TSDIR/lib

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_PLUGINDIR=$TSDIR/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_CONFFILE=$TSDIR/etc/ts.conf

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

#For Qtopia

export PATH=$QPEADIR/bin:$PATH

export QT_PLUGIN_PATH=$QPEDIR/plugins:$QPEDIR/qt_plugins/

export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/

#export QWS_FONTDIR=$QTDIR/lib/fonts

export QWS_MOUSE_PROTO="TSLIB:/dev/input/event0"

export QWS_DISPLAY="LinuxFB:/dev/fb0"

export QWS_SIZE=480x272

启动设备然后,执行:

#cd/usr/local/Trolltech/qtopia4/bin/qpe&就可以看到你自己的Qt-extended运行效果了。

l

【目标板】ICETEK-OMAPL138-KB

【安装源】

(1)qt-extended-opensource-src-4.4.3.tar.gz

https://www.360docs.net/doc/4c6990560.html,/projects/qpe/files/QPE/qtopia/qt-extended-opensource-src -4.4.3.tar.gz

(2)tslib1.4.tar.gz

(3)arm-none-linux-gnueabi-4.3.3

采用北京瑞泰创新自带的arm-none-linux-gnueabi-

【安装步骤】

1、将qt-extended-opensource-src-4.4.3.tar.gz解压为2份,分别用于编译成x86和arm 版

[relatimedsp@~]$tar zxvf qt-extended-opensource-src-4.4.3.tar.gz

[relatimedsp@~]$ls

qt-extended-4.4.3

[relatimedsp@~]$cp–r qt-extended-4.4.3qt-extended-4.4.3-x86-src [relatimedsp@~]$mv–f qt-extended-4.4.3qt-extended-4.4.3-arm-src

2、编译Qtopia4_x86版

(1)建立相关目录

[relatimedsp@~]$mkdir qtopia4_x86

[relatimedsp@~]$cd qtopia4_x86

[relatimedsp@qtopia4_x86]$mkdir build

[relatimedsp@qtopia4_x86]$mkdir target

(2)将qt-extended-4.4.3-x86-src移至目录qtopia4_x86

(3)设置安装环境变量

export QPEDIR=/home/realtimedsp/qtopia4_x86/build

export QTOPIA_DEPOT_PATH=/home/realtimedsp/qtopia4_x86/qt-extended

-4.4.3-x86-src

利用类似echo$QPEDIR可查看环境变量是否设置成功。

(4)

[relatimedsp@qtopia4_x86]$cd build

[relatimedsp@build]$../qt-extended-4.4.3-x86-src/configure-build-qt-image /home

/realtimedsp/qtopia4_x86/target-prefix/home/realtimedsp/qtopia4_x86/target ……

Qt Extended has been configured.You can build Qt Extended by running

bin/qbuild.

If you run bin/qbuild image,this will setup a runnable image in

/home/realtimedsp/qtopia4_x86/target.

As configured,Qt Extended MUST be run from/home/realtimedsp/qtopia4_x86

/target.If this is not where you intend to run Qt Extended from you should set the location by running configure-prefix/opt/qtopia.

You have new mail in/var/spool/mail/root

[relatimedsp@build]$bin/qbuild

……

Qt Extended has been built.

You must now install Qt Extended by running'bin/qbuild image'.

This will put the files required to run Qt Extended into the image:

/home/realtimedsp/qtopia4_x86/target

Before you can use the SDK you must finalize it by running'bin/qbuild sdk'. This will put the required files into the SDK:

/home/realtimedsp/qtopia4_x86/build/sdk

[relatimedsp@build]$bin/qbuild image

Removing/home/realtimedsp/qtopia4_x86/target

……

Qt Extended has been installed.

The files required to run Qt Extended are in the image:

/home/realtimedsp/qtopia4_x86/target

Please note that Qt Extended cannot be moved.It must be run from the image. [relatimedsp@build]$bin/qbuild sdk

Finalizing the SDK

/home/realtimedsp/qtopia4_x86/qt-extended-4.4.3-x86-src/src/build/bin/sdkcache /home/realtimedsp/qtopia4_x86/build/sdk

WARNING:Your perl has a bug with output and UTF-8

WARNING:sdkcache will attempt to work around the bug by changing your LANG variable from zh_CN.UTF-8to zh_CN.

The SDK has been finalized.

It can now be deployed to another computer.

(5)运行Qtopia4_x86

[relatimedsp@build]$bin/runqtopia

运行结果如图1所示:

图1qtopia-x86运行结果

3、编译Qtopia4.4.3-arm版

(1)安装交叉编译工具

交叉编译工具使用自带的arm-none-linux-gnueabi-gcc。

#gedit/root/.bashrc

编辑/root/.bashrc文件,在最后一行加入交叉编译工具链的路径:export PATH=/usr/local/arm/4.3.3/bin:$PATH

使用source/root/.bashrc加载一下,利用arm-none-linux-gnueabi-gcc–v查看是否安装成功

(2)安装触摸屏库

下载tslib1.4.tar.gz,解压后:

#autogen.sh

$echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

$./configure--prefix=/home/realtimedsp/workdir/filesys/opt/tslib --host=arm-linux--target=arm-linux CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++--with-gnu-ld--cache-file=arm-linux.cache $make

$sudo make install

注:filesys为开发板文件系统目录

(3)建立安装目录

[relatimedsp@~]$mkdir qtopia4_arm

[relatimedsp@~]$cd qtopia4_arm

[relatimedsp@qtopia4_arm]$mkdir build_arm

[relatimedsp@qtopia4_arm]$mkdir target_arm

[relatimedsp@qtopia4_arm]$pwd

/home/realtimedsp/qtopia4_arm

注:移植到开发板的路径必须与安装路径相同,否则在开发板上运行,会提示如下错误:root@da8xx-omapl1-evm:#./qpe-qws

**********************************************************

*ERROR:Expecting this binary to be located in

*/home/realtimedsp/qtopia4_arm/target_arm/bin/qpe

*but it is being run from

*/opt/qtopia4_arm/target_arm/bin/qpe

*

*This generally indicates that you have specified the wrong

*value for-prefix when configuring Qtopia.Based on the

*location of this binary,you should be using a prefix of

*

**********************************************************

Unable to initialize task subsystem.Please check'/home/realtimedsp/qtopia4_arm/ target_arm//etc/Tasks.cfg'exists and its content is valid.

Aborted

(4)将qt-extended-4.4.3-arm-src移至目录qtopia4_arm,并做如下修改

$cd

/home/realtimedsp/qtopia4_arm/qt-extended-4.4.3-src/qtopiacore/qt/mkspecs/qws/l inux-arm-g++

[relatimedsp@linux-arm-g++]$gedit qmake.conf

利用查找/替换将arm-linux-替换为arm-none-linux-gnueabi-

(5)设置时区信息

[relatimedsp@qt-extended-4.4.3-arm-src]vi src/libraries/qtopia/qtimezone.cpp 将其中的/usr/share/zoneinfo改为/home/realtimedsp/qtopia4_arm/zoneinfo(此文件夹自行设置),保存退出。

将qt-extended-4.4.3-arm-src/etc/zoneinfo拷贝开发板文件系统中/home

/realtimedsp/workdir/filesys/home/realtimedsp/qtopia4_arm/zoneinfo

(6)导出安装环境变量

export QPEDIR=/home/realtimedsp/qtopia4_arm/build_arm

export QTOPIA_DEPOT_PATH=/home/realtimedsp/qtopia4_arm

/qt-extended-4.4.3-arm-src

利用类似echo$QPEDIR可查看环境变量是否设置成功

(7)

[relatimedsp@qtopia4_arm]$cd build_arm

[relatimedsp@build_arm]$../qt-extended-4.4.3-arm-src/configure-verbose-release

-image/home/realtimedsp/qtopia4_arm/target_arm-prefix /home/realtimedsp/qtopia4_arm/target_arm-no-pkg-config-no-dbus-xplatform linux-arm-g++-arch arm-displaysizes480x800-build-qt-qtopia-sqlite-v4l2 -remove-module modem-remove-module bluetooth-remove-module drm -remove-module infrared-extra-qt-embedded-config"-xplatform qws/linux-arm-g++ -embedded arm-qconfig qpe-shared-little-endian-webkit-qt-kbd-usb-qt-libpng -qt-libjpeg-qt-gif-depths4,8,16,32-qt-mouse-tslib -I/home/realtimedsp/workdir/filesys/opt/tslib/include

-L/home/realtimedsp/workdir/filesys/opt/tslib/lib"

……

Qt Extended has been configured.You can build Qt Extended by running

bin/qbuild.

If you run bin/qbuild image,this will setup a runnable image in

/home/realtimedsp/qtopia4_arm/target_arm.

As configured,Qt Extended MUST be run from/home/realtimedsp/qtopia4_arm

/target_arm.If this is not where you intend to run Qt Extended from you should set the location by running configure-prefix/opt/qtopia.

You have new mail in/var/spool/mail/root

[relatimedsp@build_arm]$bin/qbuild

……

Qt Extended has been built.

?

You must now install Qt Extended by running'bin/qbuild image'.

This will put the files required to run Qt Extended into the image:

/home/realtimedsp/qtopia4_arm/target_arm

Before you can use the SDK you must finalize it by running'bin/qbuild sdk'. This will put the required files into the SDK:

/home/realtimedsp/qtopia4_arm/build_arm/sdk

[relatimedsp@build_arm]$bin/qbuild image

Removing/home/realtimedsp/qtopia4_arm/target_arm

……

Qt Extended has been installed.

The files required to run Qt Extended are in the image:

/home/realtimedsp/qtopia4_arm/target_arm

Please note that Qt Extended cannot be moved.It must be run from the image.

4、Qtopia4.4.3nfs移植挂载

(1)文件系统nfs挂载

详细请参考《ICETEK-OMAPL138-KB-EZ使用手册》nfs部分

(2)将/home/realtimedsp/qtopia4_arm/target_arm复制到文件系统对应目录/home/ realtimedsp/workdir/filesys/home/realtimedsp/qtopia4_arm/target_arm,进入开发板

文件系统查看

root@da8xx-omapl1-evm:qtopia4_arm#ls

target_arm zoneinfo

(3)编写环境变量脚本

root@da8xx-omapl1-evm:~#vi loadModules.sh

#!/bin/sh

export TSLIB_ROOT=/opt/tslib

if[-e/etc/ts-input.conf];then

./etc/ts-input.conf

fi

true${TSLIB_TSDEVICE:=/dev/input/event0}

TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_TSDEVICE

export TSLIB_CONFFILE

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONSOLEDEVICE=/dev/tty

export TSLIB_FBDEVICE=/dev/fb0

#QT Extendded4.4.3Setting

export QPEDIR=/home/realtimedsp/qtopia4_arm/target_arm

export QWS_SIZE=480x800

export QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'

export QWS_DISPLAY='LinuxFB:/dev/fb0'

export QWS_DISPLAY="Transformed:LinuxFb:mmWidth91:mmHeight53"

export QT_PLUGIN_PATH=$QPEDIR/plugins/

export QT_QWS_FONTDIR=$QPEDIR/lib/fonts

export LANG="en_US"

export PATH=$QPEDIR/bin:$PATH

export

LD_LIBRARY_PATH=$QPEDIR/lib:/lib:/usr/lib:/usr/local/lib:/opt/tslib/lib:$LD_LIB RARY_PATH

export HOME=/home/realtimedsp/qtopia4_arm

if[!-e$HOME];then mkdir-p$HOME;fi

if[!-e$HOME/Settings/Trolltech/qpe.conf];then

mkdir-p$HOME/Settings/Trolltech/

cp$QPEDIR/etc/default/Trolltech/qpe.conf$HOME/Settings/Trolltech/qpe.conf -f

fi

export QTOPIA_PHONE_DUMMY=1

#exec$QPEDIR/bin/qpe1>/dev/null2>/dev/null

(4)触摸屏设置及校准

修改/home/realtimedsp/workdir/filesys/opt/tslib/etc中ts.conf文件:将#module_ raw input改为module_raw input

注:在触摸屏校准前,务必运行source loadModules.sh,否则会报错:

ts_calibrate:error while loading shared libraries:libts-0.0.so.0:cannot open shared object file:No such file or directory

挂载文件系统后,进入/opt/tslib/bin目录,运行ts_calibrate

root@da8xx-omapl1-evm:~#source loadModules.sh

root@da8xx-omapl1-evm:~#cd/opt/tslib/bin

root@da8xx-omapl1-evm:bin#./ts_calibrate

此时触摸屏会进入校准界面,用触摸笔进行5点校准,校准成功后,在/opt/tslib/etc目录下会生成pointercal文件,做如下链接:

root@da8xx-omapl1-evm:~#ln–s/opt/tslib/etc/pointercal/etc/pointercal

(5)运行程序

root@da8xx-omapl1-evm:qtopia4_arm#cd target_arm/bin

root@da8xx-omapl1-evm:bin#ln–s /home/realtimedsp/qtopia4_arm/target_arm/bin/qpe/usr/bin

root@da8xx-omapl1-evm:bin#cd~

root@da8xx-omapl1-evm:~#source loadModules.sh

root@da8xx-omapl1-evm:~#qpe-qws

language message-en_US

loading/home/tandesir/qtopia4_arm/target_arm/i18n/en_US/qt.qm

loading/home/tandesir/qtopia4_arm/target_arm/i18n/en_US/qpe.qm

loading/home/tandesir/qtopia4_arm/target_arm/i18n/en_US/libqtopia.qm

loading/home/tandesir/qtopia4_arm/target_arm/i18n/en_US/systemtime.qm Rejecting modal dialog:QWaitWidget

access to audio mixer failed

转载请标明出处,欢迎转载,请勿用于商业目的!

下载qt-extended-opensource-src-4.4.3.tar.gz并解压到/home/work/desktop下

并在该目录下创建目录build

#cd/home/work/desktop

#tar-zxvf qt-extended-opensource-src-4.4.3.tar.gz

#mkdir build

#cd build

设置环境变量:

#export QPEDIR=/home/work/desktop/bulid

#export QTOPIA_DEPOT_PATH=/home/work/desktop/qt-extended-4.4.3

修改源码包:

裁减Qtopia core的库

#vi qtopiacore/qconfig-qpe.h

首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现:

//Qtopia Core

/*

#ifndef QT_NO_QWS_CURSOR

#define QT_NO_QWS_CURSOR

#endif

*/

/*

#ifndef QT_NO_QWS_MOUSE

#define QT_NO_QWS_MOUSE

#endif

#ifndef QT_NO_QWS_MOUSE_AUTO

#define QT_NO_QWS_MOUSE_AUTO

#endif

*/

其它宏定义根据需要进行注释。

保存后将qconfig-qpe.h拷贝到global目录。

#cp qtopiacore/qconfig-qpe.h qtopiacore/qt/src/corelib/global/qconfig-qpe.h 注释掉其他文件里的QT_NO_QWS_CURSOR的定义

#vi qtopiacore/qt/src/corelib/global/qfeatures.h

注释掉如下内容:

/*

#if!defined(QT_NO_QWS_CURSOR)&&(defined(QT_NO_CURSOR))

#define QT_NO_QWS_CURSOR

#endif

*/

保存退出。

#vi qtopiacore/qt/src/corelib/global/qglobal.h

注释掉以下内容:

//#define QT_NO_QWS_CURSOR

保存退出。

修改时区信息

#vi src/libraries/qtopia/qtimezone.cpp

将其中的/usr/share/zoneinfo改为/home/work/desktop/zoneinfo,保存退出。

************************本机编译qt-extended**************************** #cd desktop

解压qt-extended-opensource-src-4.4.3.tar.gz源码

#mkdir build

#../configure-qbuild-qt-image/home/work/desktop/target-prefix /home/work/desktop/target

#bin/build

#bin/build image//安装到了target目录下

编译安装完运行

#bin/runqtopia

*************************经典编译**************************************** #$QTOPIA_DEPOT_PATH/configure-release-image/home/work/desktop/target-prefix /home/work/desktop/target-xplatform linux-arm-g++-arch arm-displaysizes640x480 -build-qt-extra-qt-embedded-config"-xplatform qws/linux-arm-g++-embedded arm -qconfig qpe-shared-little-endian-webkit-qt-kbd-usb-qt-libpng-qt-libjpeg -qt-gif-depths4,8,16,32-qt-mouse-tslib-I/home/work/mytslib/include -L/home/work/mytslib/lib"2>../qtopiaconfigureERR.txt

-remove-module modem-remove-module bluetooth-remove-module drm-remove-module infrared

添加上这几个参数试试

-verbose添加出错信息对定位错误有点用

#bin/qbuild2>../makeQt-extendedERR.txt

#bin/qbuild image

配置选项:

-xplatform linux-arm-g++-arch arm//目标平台为arm-linux,体系结构为arm。

-extra-qt-embedded-config//为qt-extended配置选项。(-extra-qtopiacore-config//为Qtopia core配置选项。)

-xplatform qws/linux-arm-g++-embedded arm//目标平台编译配置文件使用qtopiacore/qt/mkspecs/qws/linux-arm-g++目录下的配置文件,嵌入式平台为arm。

-qconfig qpe//使用配置文件qconfig-qpe.h,若使用qconfig-large.h配置文件,则使用-qconfig large选项

-qt-mouse-tslib

-I/home/work/mytslib/include-L/home/work/mytslib/lib

支持tslib,并在后面添加上刚才编译的tslib的头文件和库。

2>../qtopiaconfigureERR.txt//最后将配置过程中的错误输出到qtopiaconfigureERR.txt中

*******************device编译******************************** #cd desktop

解压qt-extended-opensource-src-4.4.3.tar.gz源码

#mkdir build

配置修改qt-extended-4.4.3/devices的目录;

按照n810的配置创建自己所需要的环境目录,主要修改的地方、文件:

1、修改mkspecs/qws/linux-nokia-g++/qmake.conf文件

a、用自己的交叉编译工具替换arm-linux-*

b、将自己编译的tslib的目录指定到QMAKE_LIVBS和QMAKE_INCLUDES参数中

2、修改https://www.360docs.net/doc/4c6990560.html,mon

https://www.360docs.net/doc/4c6990560.html,mon文件Read for both desktop and device builds(before the other file).

按照自己的需要来裁剪参数模块

3、修改configure:

configure配置的是qtopia-core的参数(Read for device builds.)

a、-xplatform linux-nokia-g++

b、在该文档的最后添加自己所需要的参数,如-extra-qt-embedded-config"-webkit -qt-kbd-usb-qt-libpng-qt-libjpeg-qt-gif"

4、修改configure-qvfb

configure-qvfb文件read for desktop build

按照自己的需要裁剪

5、修改environment

This script(if it exists)is sourced before re-running configure and before Makefile calls Makefile.target

*a、修改主要的参数;TOOLCHAIN=*指定自己的交叉编译工具

b、PKG_CONFIG_PREFIX和PKG_CONFIG_PATH做适当的调整

*********************

#cd build

#../configure-device n8102>../configureERR.txt

#bin/qbuild

#bin/qbuild image

编辑新闻稿的几种技巧

新闻中的白描语言 写作技巧 新闻写作中,为了增强写作的可阅读性,常常会使用白描语言,也就是描写性的语言。 举例:美国《时代》(Time) 杂志中的一则关于邓小平访美的新闻中有这样一段:“正像礼宾程序要求的那样,上个星期,中国国歌在白宫南草坪上鸣奏(play)起来了。然后美国陆军军乐团演奏(perform)了美国国歌《星条旗》。在相互致词(deliver)之后,两国领导人登上(step on)一个阳台,向一千名鼓掌欢迎的来宾致意(greet) 。突然邓小平一反常规,他紧紧抓住(hold tight)卡特总统(Jimmy Carter)的手,高举(hold high) 起来。” 为了使用白描语言,我们一般要这样: 多用子概念。 譬如,生活水平——食物——肉类——鱼肉——鲍鱼 天气很热——气温高达38度, 受到热烈欢迎——掌声持续达10分钟之久 举例:美联社条例:不要去说“华莱士神经紧张”。要这样:在一次40分钟的飞行中间,他嚼了21根口香糖,他洗了一副牌,数了数,又洗了一遍。他看了看头上和脚下的云彩,系紧安全 带,又把它松开了。 但是,由于白描语言本身的具体性和画面感使得有时文章显得过于灵活,对于初学新闻写作的人来说显得很有难度,尤其是这些往往是在外宣中使用,所以要注意学习这种语言的使 用。 对“五段新闻法”的再认识 写作技巧 此前,我们专门介绍过对外宣传中的“五段新闻法”。作为对外宣传中的一个比较简介的新闻写作方法来讲,很有必要引起我们的重视。但是在实际的运用过程中还有一些东西要引起我们的 注意: 1.不是所有的新闻都能使用这种方法,因为这种方法一般在社会新闻中使用,往往由于富于现 场感而通过一定的描写来增强可读性和吸引力。 2.对于很多我们涉及的新闻,类似于三段叙述式的写法仍然是一个更常用的东西。我们在实际 写作中还是要大量的使用叙述式的新闻写法,这一点要引起注意。 3.在区分是否使用“五段新闻法”的过程中,我们要有自己的体会,此前我们也有专门的稿子可以 模仿,现在要告诉大家的就是要注意区分什么时间使用,什么时间不用。 4.有的时间看到同学们写的外宣稿,采用直接引语时,人物既不具有新闻性,话语也平淡无

Turbo码的编译码算法仿真汇总

电子信息类实践课III 通信系统仿真 题目Turbo码的编译码算法仿真 专业 学号 姓名 日期 注:本报告仅供参考

1、课程设计目的(黑体小三,段前段后个一行) 通过完成在在衰落信道下采用不同调制信号进行Turbo码编译码的编程实现,进一步了解了Turbo码的编码解码过程,以及在不同调制方式不同信道下的性能比见。通过对卷积和交织器的设计,深入了解卷积和交织的作用。以及熟悉了通信仿真的整体流程。 2、课程设计内容 具体叙述课程设计的主要内容和原理。 表1 主要课程设计内容列表 在进行本次Turbo仿真时,采用了两种不同编程方式。在程序一中是直接调用matlab Communications System Toolbox中的Turbo编码和解码工具箱,通过配置参数进行仿真。而在程序二中则根据Turbo码编译码原理编写。如果程序一更像是一个黑匣子,只能知道通过编解码模块前、后的数据,而具体做了哪些则不得而知。 a.编码 图1 Turbo码编码器结构 典型的Turbo码编码器结构框图如图所示:由两个反馈的编码器通过一个交织器并行连接而成。如果必要,由成员编码器输出的序列经过删余阵,从而可以产 1

生一系列不同码率的码。例如,对于生成矩阵为g=[g1,g2]的(2,1,2)卷积码通过编码后,如果进行删余,则得到码率为1/2的编码输出序列;如果不进行删余,得到的码率为1/3。一般情况下,Turbo码成员编码器是RSC编码器。原因在于递归编码器可以改善码的比特误码率性能。 通俗理解1/2码率就是信号中有一半都是“无用信号”,这些“无用信号”就是两个分量编码器的生成的校验码,而删余则是各删除一部分校验码,把剩下的再和信息比特合在一块,形成编码好的矩阵。 b.译码 图2 Turbo译码结构 Turbo码获得优异性能的根本原因之一是使用了迭代译码,通过与分量编码器对应的分量译码器之间软信息的交换来提高译码性能。对于 Turbo 码这样的并行级联码,如果分量译码器的输出为硬判决,则不可能实现分量译码器之间软信息的交换,从而限制了系统性能的进一步提高。从信息论的角度来看,任何硬判决都会损失部分信息,因此,如果分量译码器能够提供一个反映其输出可靠性的软输出,则其他分量译码器也可以采用软判决译码,从而系统的性能可以得到进一步提高。为此,人们提出了软输入软输出译码(SISO)的概念和方法。Turbo 码的分量码 SISO 译码算法总体上可分为MAP和SOV A 两类主要算法。其中MAP算法是一种最佳后验概率算法。SOV A类算法主要包括软输出的维特比算法(SOV A)和连续列表输出维特比算法(SLV A)。 SOV A算法实际上就是veterbi算法的扩展,保留的路径数不是两条而是和状态数有关从所有可行的路径中找最优的是最大似然序列检测。 d.衰落信道 由于多径和移动台运动等影响因素,使得移动信道对传输信号在时间、频率 2

面向对象的设计方法与C++编程

北京邮电大学200X-200X学年第一学期 《面向对象的设计方法与C++编程》期末考试试卷+扩展+复习题 试题一:填空题(没空一分,共20分) 请在括号内填入你认为正确的内容。 1.软件工程是指导(计算机软件)开发和维护的(工程学科)。 2.应用软件工程方法开发软件系统的根本目的是为了改善下述四项软件品质因素: 提高所开发的软件系统的(效率); 降低所开发的软件系统的(成本); 改善所开发的软件系统的(质量); 缩短所开发的软件系统的(开发周期)。 3.抽象的对象模型由(属性)和(方法)两个部分构成。 4.一个消息必须具备的两个要素是(接受消息的对象标识)和(接受消息的对象的方 法标识)。 5.一个对象拥有另一个对象的(部分)或(全部)的属性和方法的关系则称为(继 承)关系。 6.失去(创建具体对象实例的(制造对象))能力的类成为抽象类。 7.一个类的属性不能出现对象拷贝则被称为(类属性)。 8.面向对象技术的三大特征是(封装)、(继承)和(多态)。 9.共生包容关系中的被包容类对象与包容类对象是(同时连带)生成的。 10.同时出现在两个具有关联关系的对象内的相同属性被称为(连接属性)。 课程复习--补充题: 1.软件的生存周期是一个软件产品从(定义)、(开发)、(使用)到(废弃)的时 间的总合。 2.C++语言中的静态成员函数是(类方法)的具体实现。 3.连接属性是(关联/链接)关系的两个对象内的属性。 4.边界类与(actor(角色))对呈一一对应关系。 5.复合聚合关系中的(聚合)类对象极其依赖(被聚合)类对象,在实现上往往具有 被同时(构造)的特征,因而具有极高的(耦合度)。 试题二:是非判断题(每题1分,共20分) 请在题后的括号内填入√(你认为正确时)或×(你认为错误时)。 1.消息必须含有返回信息。(错) 2.一个类必然具有生成对象的能力。(错)(抽象类不具备) 3.在包容关系中的被包容类也具有封装性。(对) 4.关联关系只是一个动作的抽象。(错) (表示两个类之间的联系,通过这种联系,一个类可以访问到另外一个类的属性和方法。) 5.一个类也可以接收消息。(对) 6.关联关系中的作用名标识了该关联关系的终点对象的恰当地位。(对)

netcdf4.1.3安装后环境变量设置以跟Qt下使用静态动态库方法新

netcdf4.1.3安装后环境变量设置以及Qt下使用静态动态库方法一.netcdf4.1.3安装后环境变量设置 1.下载netcdf安装包,from: https://www.360docs.net/doc/4c6990560.html,/downloads/netcdf/index.jsp 我下载的是版本4.1.3 2.解压tar -zxvf netcdf-4.1. 3.tar.gz 3. 在解压后的netcdf- 4.1.3所在目录执行: ./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf 注意:上面红色的两个选项是他人很多次实验后证明必须的(参考资料1)。--disable-dap的原因是缺少一个‘curl’的lib,--disable-netcdf-4是报错中提出的解决办法,尽管我个人暂时没有搞清楚为什么。不写这两个,在configure的时候就会报错,导致后面make失败。 4. make 5. make install,提示安装成功的同时,还会提醒make check,下一步进行。 6. make check 安装完成后,/usr/local/netcdf/文件夹下存在4个文件,分别为bin,include,lib和share

安装完成后,注意环境变量的设置 打开终端输入sudo ~/.bashrc 在最后添加 export PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0.0/netcdf/bin:/$P ATH export LD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0 .0/netcdf/lib:/$ LD_LIBRARY_PATH export DYLD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one _1.0.0/netcdf/lib:/$ DYLD_LIBRARY_PATH

新闻编辑管理办法(2013修订)

新闻网站编辑管理办法 一、总则 为保证网站健康运行,保证百度收录效果,鼓励编辑高效工作,特制定此考核办法。即日起施行。 二、考核制度 (1)编辑以分数考核工作量,当月分数构成为基本分+加分项-减分项。 当月基本分为225分,基本工资:1800元;每分以8元计算当月工资。 值班分为周末及法定节假日值班补分,每天补10分,未完成任务不补分。 (2)补助: 餐费:20元/天,按工作日天数计算 交通费:10元/天,按工作日天数计算 (3)主编与副主编分别考核30分、10分,视当月表现决定是否给予奖励或扣除。 三、工作时间 正常班8:30-17:30 早班7:00-16:00 午休11:30-12:30

四、要闻值班制度 编辑为当天网站头条、官方微博、青岛新闻、各栏目头条的第一责任人,应统筹当天青岛新闻、制作头题、维护官方微博。 下班后,值班编辑也需随时留意青岛及全国重大新闻,如有突发事件,应第一时间电话通知内容部主任,并上新闻、发布微博,如果记者部调配记者采访,应协助准备资料。 五、栏目更新时效要求 1.青岛新闻:13,焦点图:3,话题:5 2.企业:10,蓝色商讯:10,蓝色硅谷:5,青岛世园:3 3.综合:5,楼市:3,车市:3,美食:3,教育:3, 旅游:3,图片汇:1。 总计: 7:00-9:30,青岛13+话题5+焦点图3=21条 9:30-11:30,企业10+商讯10+硅谷5=25条 12:30-17:00,世园3+综合5+楼市等16=24条 4.首先录重点新闻,审核后立刻添加到“栏目碎片”及“山东半岛蓝色经济区”碎片; 首页头条碎片最多添加一条山东网青岛频道的曝光(挑重点),不可全为负面新闻,剩余两个碎片分别添加不同新闻源的时事新闻。5.“青岛通讯社”每天更新10条微博

LT码编译码算法实现

LT码编译码算法实现 1.1 LT码编码程序实现 1.1.1概述 LT编码程序的主要任务是通过Ideal Soliton分布或者给定参数c和δ的Robust Soliton分布公式得到度分布。然后每次编码过程都以度分布概率ρ(d)生成邻接元个数d,随机选择d个邻接元的位置。利用这d个邻接元与对应位置的码原符号进行异或和运算,生成单次编码符号。重复上述过程M次。其中每次编码被选择的邻接元位置上置1,其它位置上置0,加上生成的编码符号得到 1×(K+1)阶矩阵。M次编码产生的矩阵组合在一起,即可得到接收端需要的编码符号集。 模拟度分布概率产生邻接元个数采用区间法。主要过程为将度分布概率累加形成区间,然后利用C语言的标准随机数发生器产生随机数,判断随机数位于哪一区间,对应可得到一个数,这个数即为单次编码的邻接元个数。区间的绝对差值大小对模拟概率分布误差有很大影响,区间设置越大,模拟概率更准确。 确定邻接元个数后,随机产生邻接元位置。其中需要保证每次产生的邻接元位置不同。实现方法主要是利用数组记录每次位置,之后每次编码首先查找记录位置数组中是否已存在该位置。 1.1.2步骤 主要步骤: 1.利用Ideal Soliton分布公式产生理想度分布数组,若需使用到Robust Soliton分布,则依据给定的参数c、δ、公式S≡c ln(K/δ)√K以及理想度分布数组产生Robust Soliton分布数组。 2.由对应分布数组累加形成[0,1]的累加分段区间,将各区间乘以一个较大的数,增加模拟的准确性。 3. 利用C语言的标准随机数发生器产生随机数,依据随机数所属区间,产生邻接元个数。 步骤1、2、3主要用于产生邻接元个数,合并步骤为Ⅰ。 1. 利用步骤Ⅰ产生邻接元个数。 5. 利用C语言的标准随机数发生器产生[1,(K?1)]随机数,即邻接元位置,若为单次编码的第一个邻接元,则不判断是否重复,否则需判断是否产生重复位

面向对象的三个基本特征讲解

面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程(OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 实现继承是指使用基类的属性和方法而无需额外编码的能力; 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类

都可以继承Person 类。但是Leg 类却不能继承Person 类,因为腿并不是一个人。 抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字Interface 而不是Class。 OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 多态 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。 实现多态,有二种方式,覆盖,重载。 覆盖,是指子类重新定义父类的虚函数的做法。 重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。” 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。 概念讲解 泛化(Generalization)

Qt显式调用dll

Qt显式调用C++写的dll 这些天在做一个工程,要用到Qt,所以特别研究了一下Qt显式调用链接库的问题。隐式调用就不那么想用了,个人感觉隐式调用既浪费内存,造成程序启动速度极慢,又容易造成链接错误(本人在ogre中深受链接错误之苦),所以只用了显式调用。以前只试过在MFC 中显式调用dll,在Qt上还没试过。其实细细研究一下,相对于MFC的调用来说,Qt的调用也是大同小异的。在这里分享一下。 首先用VS写一个dll先(名字为QtDllTest)。写dll最大的问题就是解决导出函数重命名问题。其中解决方法是多种多样的。本人只用自己最常用一种——用模块定义文件.def。 第一步,写一个dll,简单写一个测试加法函数的: int add(int a,int b) { return a+b; } 之后添加一个模块定义文件QtDllTest.def: LIBRARY "QtDllTest" EXPORTS add 之后顺利生成dll. 现在可以利用dll函数导出工具DLL Export Viewer查看刚才生成的dll中的导出函数:

发现,导出函数名字没有乱码,说明导出函数正常。现在,就以这个dll为例来试着用Qt调用。 新建一个名为QtDllTestDemo的Qt Application: 默认,下一步 继续下一步:

Finish就行了。反正一切默认就行。 在ui界面中加入一个pushButton(ObjectName:CalButton,Text:Calculate),一个Label 控件(Text:Result),一个lineEdit控件(ObjectName:Result),主要是在点击按钮后调用dll并计算把计算结果显示在文本框中,如下图所示: 为了顺利使用dll,我们要在qtdlltestdemo.cpp开始包含这个东西:#include 下面给pushButton添加click响应事件: void QtDllTestDemo::on_CalButton_clicked() {

网页新闻编译的原则与技巧

网页新闻编译的原则与技巧 文章详细论述了把汉语网页新闻编译成英语网页新闻时所要遵循的原则与技巧,分别阐述了英语网页新闻标题、新闻电头、新闻导语及其新闻主体编译时应遵循的原则,希望网页新闻编译工作能正规化,国际化。 标签:编译标题电头导语 1 概述 当今社会经济快速发展,中国已经成为全球第二大经济强国,因而有关中国的一切事情,无论是政治、经济等各个领域备受世人关注。目前中国已经有China Daily,Global Times等几家英文报纸让世界了解中国,除此之外网络也成为外界了解中国的重要途径,但由于中西方文化差异以及中西方新闻写作范式的差异等原因,要把汉语新闻编译成英语新闻或者把汉语网页新闻编译成适合西方读者阅读的英语网页新闻,就必须遵循英语网页新闻编写的原则和技巧,这样才可以做一个合格的新闻编译人员,才能提高新闻的关注度和兴奋点。 2 网页新闻编译的原则和技巧 2.1 英语网页新闻标题的行文规范 新闻标题(题目)是用精辟的词语,对新闻内容和中心思想富有特色的浓缩和概括,网络新闻的标题具有揭示新闻内容,评价新闻内容,索引选择信息和说明报道形态的功能。俗话说:“看书看皮,看报看题”,这句俗语很好的诠释了一个好的标题对于新闻的重要性。美国知名的民意调查公司盖洛普所做的一项联合调查研究表明:44%的读者去网站浏览新闻都是先浏览新闻标题,然后决定是否继续来阅读这则消息。因而新闻标题只有足够吸引读者才能激起读者继续浏览网页的兴趣,才能提高新闻的关注度和兴奋点,所以一定要选好新闻标题。当然英语新闻标题有其自身的写作原则和范式,把汉语网页新闻编译成英语新闻时要严格遵循这些原则和范式。 2.1.1 英语新闻标题的写作原则 和汉字相比较而言,英文字长,所占空间大,因此英语新闻标题用字必须节省空间,为了节省空间,英语新闻标题往往在语法方面大做文章,尽量使用有实质内容的字词,能省则省;尽量使用熟词,避免使用花哨的词藻;尽量用具体的词汇而不是使用抽象词语。常见的规则如下: ①英语新闻标题大量使用较短的词语,如下例: Palestinians Blast Israel For Not Implementing UN Resolution

面向对象程序设计教程 (马石安版)

第 1 章习题答案 名词解释 抽象:抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一类。面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 封装:面向对象方法中的封装就是把将抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息:消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 填空题 (1) 面向过程的结构化程序设计方法面向对象程序设计方法 (2) 顺序选择循环 (3) 程序=数据结构+算法程序=对象+消息 (4) 过程类 (5) 抽象性封装性继承性多态性选择题 (1) B (2) C (3) D (4) C (5) D (6) A (7) A (8) B C (9) A D 判断题(1) t (2) f (3) f (4)f (5) t (6) f (7) f (8) t 简答题 (1) 结构化程序设计方法着眼于系统要实现的功能,从系统的输入和输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。首先是数据安全性问题,由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。其次是可维护性及可重用性差,它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。每一种相对于老问题的新方法都要带来额外的开销。另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。 (2) 面向对象的程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组相互协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。对象之间存在各种联系,它们之间通过消息进行通信。程序可表示为:程序=对象+消息在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。类通过一个简单的外部接口,与外界发生关系。一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。不必预先确定消息产生的顺序,更符合客观世界的实际。并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。 (3) 结构化程序设计方法中,把数据结构和算法分离为相互独立的实体。在面向对象程序设计中,数据结构和算法是封装在一起,结合成一个独立的单位,即对象,并尽可能隐蔽对象的内部细节。对象的私有属性只能由这个对象的行为来读取和修改,与外部的联系通过公有行为充当外部接口。 第 2 章习题答案

会议新闻的剪辑方法

会议新闻的剪辑方法 会议新闻是电视台新闻栏目中必不可少的重要内容之一,党和政府召开的各类会议,是新闻报道中不可或缺的题材和内容。这些会议,特别是重要会议,往往包含着群众关心,非常希望看到的信息和新闻。作为把握时代脉搏、反映时代进程的新闻媒体,作为党和人民喉舌的新闻媒体,搞好会议报道既是自己的义务,也是义不容辞的职责。事实上,很多社会关注的重大新闻出自会议报道,受众对与国计民生紧密相关的政策法规的了解更是出自于会议报 道。能不能用受众喜闻乐见的形式,及时、准确、生动地把党委、政府的声音传达到基层干部群众中去;能不能通过生动活泼的会议报道把基层干部、群众想了解的内容传达出去,是衡量新闻报道水平的一个重要标准。 现在改革会议新闻的呼声很高,措施已经在各个电视台的新闻栏目中实施。如何让会议更有看头,更吸引广大电视观众的眼球,我个人觉得画面是关键之一。 电视新闻是以现代电子技术为传播手段,以图像、声音、文字为传播符号,对新近发生或正在发生的事实的报道。电视新闻最大的优点在于其视觉上的直观性,能够将新闻现场直接呈现在屏幕上,最大限度地让观众感受到新闻的真实感。所以会议新闻画面的重要性就凸显出来了。

会议新闻的画面稳、丰富和搭配连接合理都能够达到意想不到的效果。下面,我就从几个方面来谈谈会议新闻画面的剪辑方法。 会议新闻图像的一般剪辑方法 1.主席台领导镜头的剪辑主席台领导镜头的剪辑要突出主要领导。主席台前排主要领导可根据排次采用单个特写镜头进行连接,其他领导可根据排次选用固定双人、三人图像左、右对称或向右、向左摇镜头连接。这样的编辑方式对于介绍出席会议的领导显得十分实用。一条片子可根据时间的长度来确定编辑主席台领导镜头的次数。一般三四分钟片长的新闻出两次,五六分钟片长的新闻出三次。每次编辑领导镜头时,都要尽量选用不同神态和姿势拍摄得好的镜头,一是避免镜头的重复使用、二是树立了领导的形象。 2.主要领导讲话镜头的剪辑剪辑主要领导讲话的镜头时,首先应选用拍摄神态好的、正面的领导讲话特写镜头,并保持一定的长度。这里也可以用拉镜头,即在主要领导讲话的固定镜头达到一定长度时逐渐拉开,同时介绍其他主要领导。以后领导讲话的镜头的剪辑,根据新闻稿的内容和长度来确定,可以选用固定、推、拉等方式的侧面或正面的镜头。

RS编译码原理

1 RS码字 RS码(Reed-solomon codes)一种低速率的前向纠错的信道编码,是一类具有强纠错能力的多进制BCH码,在线性分组码中,它的纠错能力和编码效率是最高的。相比于其他线性分组码而言,在同样的效率下,RS的纠错能力是特别强的,特别是在短的中等码长下,其性能接近于理论值,它不但可以纠正随机错误,突发错误及两者的结合,而且可以用来构造其他码型,如级联码。 其编码过程首先在多个点上对这些多项式求冗余,然后将其传输或者存储。对多项式的这种超出必要值的采样使得多项式超定(过限定)。当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。 1.1RS编码 RS码是一类纠错能力很强的特殊的非二进制BCH码。对于任选正整数S 可构造一个相应的码长为n=q S-1的q进制BCH码,而q作为某个素数的幂。当S=1,q>2时所建立的码长n=q-1的q进制BCH码,称它为RS码。当q=2m(m>1),其码元符号取自于GF(2m)的二进制RS码可用来纠正突发差错,它是最常用的RS码。 一个RS码有以下几个参数: 码长:n=2^m-1个符号或者m(2m-1)比特 信息段:k个符号或者mk个比特 监督段:2t=n-k个符号2mt=m(n-k)个比特 最小码距:d min=n-k+1个符号或者md min=m(n-k+1) 例如,对RS(204,188)码来说,源数据被分割为188个符号为一组,经过编码变换后,成为204个符号长度的码字。长度为16个符号的监督为可以纠正码字中出现的最多8个符号错误。 RS编码的框图如图所示: RS编码器的结构 RS码的基本思想就是选择一个合适的生成多项式g(x),并且使得对每个信息段计算得到的码字多项式都是g(x)的倍式,即使得码字多项式除以g(x)的余式为0。这样,如果接收到的码字多项式除以g(x)的余式不是0,则知道接收码字的余式存在错误;而且通过进一步可以纠正最多t=(n-k)/2个错误。

怎么把qwt添加到qt中使用

标题:如何在QT中运行QWT 作者:胡振凯 日期:2014/8/16 修改ver.1 2014/8/23 运行环境win8.1专业版。 目的:QT中的GUI库不全,使用QWT库可以编程更容易。 从使用QT,到添加QWT库步骤: 1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) , 并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。 ●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文 件。 2.修改环境变量的系统变量的path ●打开控制面板,系统,高级设置,环境变量,path ●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe) ●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32- make.exe) 3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。(下载到哪都无所 谓)。 4.修改qwtconfig.pri文件。修改安装后路径。(我要把qwt安装到d:\Qwt- 6.1.0中,默认是c盘。) ●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION} 5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文 件。Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。 ●进入qwt-6.1.0路径,输入命令qmake。在路径下生成makefile文件。 ●输入命令mingw32-make,编译所有cpp文件。 ●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输 出到安装(拷贝)目录d:/Qwt-6.1.0。 6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。很多人把编译好 的文件拷贝到qt库文件夹下。其实,只要设置系统变量的path,编译程序就会查找这个文件夹了,所以不用拷贝来拷贝去的。

新闻编辑要点

新闻编辑知识要点 新闻编辑工作与媒介形态变化 1、新闻编辑作为一种职业,是在新闻媒介产生以后才出现的。随着新闻传播的发展,报纸,新闻性杂质,报道新闻的广播、电视、网站依次都有了专职的新闻编辑。 2、新闻编辑业务伴随着媒介形态的变化而发展,报纸新闻编辑的原理和规范为后来各类新媒介的新闻编辑业务奠定了基础,新媒介的编辑特点是总是在汲取传统媒介的编辑经验中衍生出来的,而且这种特点后来还会反过来影响传统媒介的编辑业务改革。 新闻编辑工作内容及其流程 1、负责新闻采访编辑工作的组织机构是编辑部,编辑部内有“采编合一”与“采编分离”两种不同的分工模式,也有媒介混合采用这两种模式。 2、新闻编辑的工作种类按管辖范围和责任大小划分,有总编辑、编辑部主任、版面编辑、版式编辑、新闻编辑、校对等;按业务程序划分,有日班新闻编辑、夜班新闻编辑、内务编辑;按编辑内容的专业划分,可分为政治编辑、文教编辑、经济编辑、体育编辑等。 3、新闻编辑工作是新闻编辑在新闻媒介产品生产过程中所进行的一系列工作。新闻编辑工作的内容包括:新闻信息载体设计、新闻报道的策划与组织、新闻作品的修正与把关、新闻信息的整合与展示、新闻互动与公共交流的组织与引导。 4、新闻编辑工作流程是将新闻媒介由创办伊始至产品问世作为一个完整的生产周期,新闻编辑在这一周期中各项工序的安排程序。 5、报纸编辑工作流程图:确定报纸的编辑方针;设计报纸结构、规模和风格;设计报纸的各个版和专栏;策划、组织当前的新闻报道;分析、选择稿件;修改稿件;制作标题;配置稿件;设计版面;校正、签发。(接受信息反馈、处理信息) 媒体融合进程中新闻编辑部的变化 , 1、世纪之交,西方媒体集团的一些改革实验表明,传统的新闻媒体力图通过与新媒体的融合,将其内容优势转化成市场利润。在集中和融合的媒体集团中,不同的媒体可以通过某种流程控制实现资源重整,利用各自的介质差异,在新闻信息传播上实现资源共享而又产品各异,联手做大区域市场,并且在这一市场上占据垄断地位。 2、我国媒体融合正在经历由“互动”到“一体”的递进式发展过程。“报网互动”是报纸与网站作为两个相互独立的媒体进行合作。“报网一体”是报纸与网站的整体融合。

遗传算法编码

遗传算法编码 读万卷书不如行万里路,今天下决心写一个SGA(Simple Genetic Alogrithms)程序,是求解非约束优化问题。 max f(x1,x2)=21.5+x1*sin(4*PI*x1)+x2*sin(20*PI*x2) -3.0<=x1<=12.1 4.1<=x2<= 5.8 这可是遗传算法中最容易的,可是结果却令人失望,在整个求解过程中都收敛在局部最优,只有通过加大变异率才能求得全局最优,但问题可想而知:全局最优解不稳定,就好像是昙花一现。 查了一下资料才发现是编码设计的问题。我用的是二进制编码。 编码是应用遗传算法时要解决的首要问题,也是设计遗传算法时的一个关键步骤。编码方法影响到交叉算子、变异算子等遗传算子的运算方法,大很大程度上决定了遗传进化的效率。 迄今为止人们已经提出了许多种不同的编码方法。总的来说,这些编码方法可以分为三大类:二进制编码法、浮点编码法、符号编码法。下面我们从具体实现角度出发介绍其中的几种主要编码方法。 1.二进制编码方法: 它由二进制符号0和1所组成的二值符号集。它有以下一些优点: 1)编码、解码操作简单易行 2)交叉、变异等遗传操作便于实现 3)符合最小字符集编码原则 4)利用模式定理对算法进行理论分析。 二进制编码的缺点是:对于一些连续函数的优化问题,由于其随机性使得其局部搜索能力较差,如对于一些高精度的问题(如上题),当解迫近于最优解后,由于其变异后表现型变化很大,不连续,所以会远离最优解,达不到稳定。而格雷码能有效地防止这类现象 2.格雷码方法: 格雷码方法是这样的一种编码方法,其连续两个整数所对应的编码值之间仅仅只有一个码位是不同的。如下表 十进制二进制格雷码 000000000 100010001 200100011 300110010 401000110 501010111 601100101 701110100 810001100 910011101 1010101111 1110111110 1211001010 1311011011

面向对象技术

《面向对象技术(本)》课程第一阶段练习题 一.填充题 1.Java源程序文件的扩展名是java;Java源程序经编译后生成Java字节码文件,其扩展名是class。 2.Java程序可分为Application和Applet两大种类。 3.开发与运行Java程序需要经过的三个主要步骤为编写源程序、 编译源程序和解释运行字节码文件。 4.在Java程序中定义的类有两种成员:成员变量、成员方法。 5.一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令: javac MyPro.java 、 java MyPro 。 6.定义初值为123456789的长整型变量 var 的语句是__long var=123456789L;__。 7.在Java语言中,逻辑常量值除了true之外另一个是false。 8.表达式15+4*5-12的运算结果是23。 二.选择题 1.编译Java源程序文件后所产生的字节码文件的扩展名为: C A.java B. html C.class D. exe 2. main方法是Java Application程序执行的入口点,以下main方法头部合法的是:B A. public static void main() B. public static void main(String args[]) C. public static int main(String[] arg) D. public void main(String arg[]) 3.下面的Java源文件代码片断是不正确的定义次序的是: D A.package mypack; public class Demo{//do something…

用Qt生成dll类库及调用方法

用Qt生成dll类库及调用方法 (2010-08-16 11:01:01) 转载▼ 标签: 教育 .NET2005: 空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录” 项目-》属性->连接器-》常规-》附加库目录->添加“指定目录” 项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件” 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法; 将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。 然后编译,此时生成的就是.a和.dll的文件。 在另一个项目中调用此DLL: 在项目文件中添加LIB。如添加此行:LIBS += "D:\workspace\MRP_Common\debug\common.dll" (common.dll既是上面生成的DLL);复制dll中类或方法的头文件到该项目中,并在要调用common.dll中类或方法的文件上面include; make,在debug目录中生成可执行文件,然后将dll复制到debug中,运行。 例子: ########################### 生成DLL的工程: ####################### 修改pro文件: TEMPLATE=lib ########################### .h文件 ####################### #ifndef DLLTEST_H #define DLLTEST_H #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport)

新闻编辑知识要点

新闻编辑知识要点

新闻编辑知识要点 新闻编辑工作与媒介形态变化 1、新闻编辑作为一种职业,是在新闻媒介产生以后才出现的。随着新闻传播的发展,报纸,新闻性杂质,报道新闻的广播、电视、网站依次都有了专职的新闻编辑。 2、新闻编辑业务伴随着媒介形态的变化而发展,报纸新闻编辑的原理和规范为后来各类新媒介的新闻编辑业务奠定了基础,新媒介的编辑特点是总是在汲取传统媒介的编辑经验中衍生出来的,而且这种特点后来还会反过来影响传统媒介的编辑业务改革。 新闻编辑工作内容及其流程 1、负责新闻采访编辑工作的组织机构是编辑部,编辑部内有“采编合一”与“采编分离”两种不同的分工模式,也有媒介混合采用这两种模式。 2、新闻编辑的工作种类按管辖范围和责任大小划分,有总编辑、编辑部主任、版面编辑、版式编辑、新闻编辑、校对等;按业务程序划分,有日班新闻编辑、夜班新闻编辑、内务编辑;按编辑内容的专业划分,可分为政治编辑、文教编辑、经济编辑、体育编辑等。 3、新闻编辑工作是新闻编辑在新闻媒介产品生产过程中所进行的一系列工作。新闻编辑工作的内容包括:新闻信息载体设计、新闻报道的策划与组织、新闻作品的修正与

编辑方针的具体内容包括:媒介的受众对象、新闻传播的内容、传播的水准和媒介的风格特色。 新闻产品设计(重点) 1、新闻产品设计,是对媒介产品中以传播新闻为主要职能的组成部分的设计,包括确定新闻产品在整个媒介产品中的位置和比重,以及进一步设计新闻产品中的每一个组成部分。 2、新闻产品设计是一种集体性的创造活动,也是一项难度极大的系统工程,运行过程包括设计预备阶段、方案设计阶段和方案试行阶段。 3、新闻产品设计需要注意的问题是:充分的占有信息并准确的分析信息,保证新闻产品设计的合理性和可行性;在可行性与超前性之间找到平衡点;产品设计应该与采编机制改革同步;正确处理借鉴与创新、变革与稳定的关系。新闻报道策划及其主要类型(重点) 1、新闻报道策划是新闻编辑通过对新闻资源的开发与配置,实现最佳传播效果的创造性活动。新闻报道策划的主要内容包括:选题决策、报道方案设计、在报道实施过程中接受反馈并修正设计方案。 2、新闻报道策划本质上是主客观相结合的产物,它应遵循的原则是:取信原则、创新原则、变通原则、实效原则、可行原则。

龚政辉-RS码及其编译码算法

RS码及其编译码算法 指导教员:雷 菁 姓 名:龚 政 辉

第一章 引言 本文介绍符号取自) GF里的里德-所罗门码(Reed-Solomon (q Code,以下简称RS码)。RS码是非二进制BCH码的一个最常用的子类,而BCH码是大家所熟悉的。虽然RS码属于BCH码,但是它却是由Reed和Solomon于1960年采用完全不同的方法独立构造出来的。RS码的最小距离等于它的奇偶校验符号数加一。 RS码在纠正随机符号错误和随机突发错误方面非常有效,因此被广泛应用于通信和数据存储系统中以便进行差错控制,应用领域涵盖从深空通讯到高密度磁盘等多方面。以RS码作为外码,简单二进制码作为内码的级联方式在降低译码复杂度的同时,能够提供很高的数据可靠性。 但与二进制BCH码不同,RS码的译码需要同时确定符号错误的的位置和取值,所以它的译码更为复杂而编码算法是大体一致的。

第二章 循环纠错码的基本理论 2.1 有限域(Galoias 域)基本概念及相关结论 有限域(Galoias 域)就是域中元素的个数是有限的,元素的个数称为域的阶。q 阶有限域,用()GF q 表示。如果q 为一个素数,则集合 {}0,1,2,,1q ? 在模q 加法和乘法下,构成一个q 阶有限域()GF q 。有限 域在编码理论中具有重要的地位,下面给出Galoias 域的几个基本概念和相关结论。 定义1 在域()GF q 中,满足0ne =的最小正整数n 称为域的特征, e 为域的单位。 定义2以q 为特征的域是()m GF q ,1,2,m =…,称()GF q 是()m GF q 的基域,()m GF q 为()GF q 的扩域。 域中一切非零元素的特征都等于域的特征,且域的特征一定为素数。非零元素构成的乘法群的阶定义为域中该元素的级。若α为域 ()GF q 中的n 级元素,则称α为n 次单位原根。若某一元素α的级为1q ?,则称α为本原域元素。域的特征表明了域中加法运算的循环性, 而域的级则表明了域中乘法运算的循环性。 下面给出几个有限域的相关结论。 定理1在()GF q 中,每一个非0元素均满足110q x ??=。 定理2在特征为q 的域中,恒有()q q q x a x a ?=?,式中,a 是域中

相关文档
最新文档